gpt4 book ai didi

将 size_t 转换为字符串

转载 作者:IT王子 更新时间:2023-10-29 00:42:42 26 4
gpt4 key购买 nike

我正在尝试编写一个客户端可以用来浏览服务器目录的 TCP 服务器。除此之外,如果这是一个常规文件,我想发送目录的大小。文件的大小保存在“stat”结构下的 size_t 变量中。我在这里这样做:

char *fullName  /* The path to the file *.
/**
* Some code here
*/
struct stat buffer;
lstat(fullName, &buffer)

现在 buffer.st_size 包含文件的大小。现在我想 write() 它到监听套接字,但显然我必须以某种方式将它转换为字符串。我知道这可以通过按位右移 (>>) 运算符以某种方式完成,但对我来说这似乎太痛苦了。你能帮我解决这个问题吗(即使除了按位运算符别无他法)?

顺便说一下,这不适合学校或其他...

PS:我在 Linux 上运行它。

最佳答案

您可以使用函数的成员 sprintf()-family 将“某物”转换为“字符串”。

#define _POSIX_C_SOURCE 200112L

#include <stdio.h>
#include <unistd.h>
#include <string.h>

int main(void)
{
size_t s = 123456789;
char str[256] = ""; /* In fact not necessary as snprintf() adds the
0-terminator. */

snprintf(str, sizeof str, "%zu", s);

fputs(stdout, "The size is '");
fflush(stdout);

write(fileno(stdout), str, strlen(str));

fputs(stdout, "'.\n");

return 0;
}

打印出来:

The size is '123456789'.

关于将 size_t 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com