C fstat获取文件大小为零
文件就在那里,里面有json数据。我想知道文件的长度。但当我尝试下面的代码时,它的大小仍然是0C fstat获取文件大小为零,c,linux,file,C,Linux,File,文件就在那里,里面有json数据。我想知道文件的长度。但当我尝试下面的代码时,它的大小仍然是0 int file_contentl_Len = 0; int fd_0 ; fd_0 = open(FILE_PATH_CONFIG_0, O_WRONLY | O_TRUNC | O_CREAT, 0644); if(fd_0 < 0) { printf("\r\nError opening Config file %s: %s\n",FILE_PATH_CONFIG_0, str
int file_contentl_Len = 0;
int fd_0 ;
fd_0 = open(FILE_PATH_CONFIG_0, O_WRONLY | O_TRUNC | O_CREAT, 0644);
if(fd_0 < 0)
{
printf("\r\nError opening Config file %s: %s\n",FILE_PATH_CONFIG_0, strerror(errno));
return -1;
}
struct stat buf;
fstat(fd_0, &buf);
file_contentl_Len = buf.st_size;
printf("\r\nConfig file %s content length: %d\r\n", FILE_PATH_CONFIG_0, file_contentl_Len);
int file\u contentl\u Len=0;
int fd_0;
fd_0=打开(文件路径配置0,O_WRONLY | O_TRUNC | O_create,0644);
如果(fd_0<0)
{
printf(“\r\n打开配置文件%s时出错:%s\n”,文件路径配置0,strerror(errno));
返回-1;
}
结构统计buf;
fstat(fd_0和buf);
文件内容长度=buf.st\u大小;
printf(“\r\n配置文件%s内容长度:%d\r\n”,文件路径配置0,文件内容长度);
您打开了文件以进行截断写入,必要时创建它-O_WRONLY | O_TRUNC | O_create
大小为零表示截断成功,或者文件创建为空
如果要读取文件中的内容,请改用
O_RDONLY
。或者使用O_RDWR
仔细考虑是否允许创建该文件。您打开该文件以进行截断写入,必要时创建它-O_WRONLY | O_TRUNC | O_create
大小为零表示截断成功,或者文件创建为空
如果要读取文件中的内容,请改用
O_RDONLY
。或者使用O_RDWR
仔细考虑是否允许创建文件。为什么DOS风格的行在Linux上结束?真奇怪!即使他在Windows上,\r\n
也不是必需的printf
应该为您妥善处理这些问题。为什么DOS风格的行在Linux上结束?真奇怪!即使他在Windows上,\r\n
也不是必需的printf
应该为您妥善处理这些问题。