运行以下代码行并遇到我不确定的问题。主要思想是让用户输入要搜索的inode。一旦找到,打印与该 inode 关联的文件名,然后在该文件名上运行命令“stat”以生成有关该文件的信息。
#define COMMAND_LEN 1024
#define DATA_SIZE 1024
int main(int argc, char **argv) {
FILE *pf;
char command[COMMAND_LEN];
char data[DATA_SIZE];
char inode_data[DATA_SIZE];
int iNode;
printf("Enter inode: ");
scanf(argv[0], iNode);
sprintf(command, "find -inum %i -type f", iNode);
pf = popen(command, "r");
if(!pf){
fprintf(stderr, "Could not open pipe for outlet.\n");
return;
}
fgets(data, DATA_SIZE, pf);
fprintf(stdout, "%s\n", data);
sprintf(command, "stat %s", data);
pf = popen(command, "r");
fgets(inode_data, DATA_SIZE, pf);
fprintf(stdout, "%s\n", inode_data);
if (pclose(pf) != 0)
fprintf(stderr, "Error: Failed to close command stream!\n");
Return 0;
}
编译、运行并输入 inode 编号后,我会得到以下信息:
Enter inode: 148869
stat: missing operand
Try 'stat --help' for more information.
Error: Failed to close command stream!
从 sprintf 中的保存信息到变量中获得有用的帮助