【发布时间】:2020-09-22 23:56:12
【问题描述】:
我正在尝试读取 /proc//cmdline。
该程序应该打印出 PID,然后是 /proc//cmdline 中的内容。如果文件为空,则应打印 []。
对于我在下面的屏幕截图中测试的过程,它应该打印 [] 因为 cmdline 文件中没有任何内容。相反,如您所见,它正在打印一些奇怪的字符串(每次都不同)。扫描此文件时我做错了什么吗?
FILE* fp;
char buffer[256] = "";
char temp[256];
sprintf(buffer, "/proc/%s/cmdline", processId);
fp = fopen(buffer, "r");
fscanf(fp, "%[^\n]", temp);
printf("[%s] ", temp);
fclose(fp);
【问题讨论】:
-
初始化数组'char buffer[256] = {0};.
-
cmdline不以\n' so the statement;fscanf(fp, "%[^\n]", temp);` 结尾会失败 -
贴出的代码如何获取
processId的内容? -
文件中的数据字节:
cmdline以]结尾因此建议读取数据字节直到遇到] -
发布的代码从不将
processId输出为单独的实体