Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C fstat获取文件大小为零_C_Linux_File - Fatal编程技术网

C fstat获取文件大小为零

C 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

文件就在那里,里面有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, 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
应该为您妥善处理这些问题。