将size_t转换为字符串

我正在尝试编写一个TCP服务器,客户端可以使用它来浏览服务器的目录.除此之外,如果是常规文件,我想发送目录的大小.文件的大小保存在“stat”结构下的size_t变量中.
在这做这个:
char *fullName  /* The path to the file *.
/** 
  * Some code here
  */
struct stat buffer;
lstat(fullName,&buffer)

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

顺便说一句,这不适合学校或smth ……

PS:我在Linux上运行它.

解决方法

您可以使用 sprintf()-family函数的成员将“something”转换为“string”.
#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'.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...