如何读取/proc/cmdline文件大小

问题描述 投票:0回答:1

我有

FILE *file = fopen("/proc/cmdline", "r");
struct stat st;
fstat(file, &st);
char buffer[st.st_size];
fgets(buffer, st.st_size,file);
printf("%s", buffer);

这会打印出 cmdline 的内容,但我在

fstat()
函数处有一个 int 指针转换警告。如果我尝试
fstat(fileno(file), &st);
缓冲区有乱码,意味着 st.st_size 没有正确设置。同样,寻找文件末尾来获取其大小也没有正确设置缓冲区的大小

c linux file filestream
1个回答
3
投票

如何读取/proc/cmdline文件大小

(假设 Linux)像这样(为简洁起见,省略了错误检查):

#include <limits.h>
...

char buf[ARG_MAX];
FILE *fp = fopen("/proc/cmdline", "rb");
size_t len = fread(buf, sizeof(buf), 1, fp);
© www.soinside.com 2019 - 2024. All rights reserved.