我在 main 中传递一个参数,并希望将该参数包含在其中一行代码中。我很难将其合并到代码中。 这是代码:
int main(char *argv[])
{
FILE *in;
char buff[512];
// char temp [512];
// /nfs/engfs/haquresh/Desktop -> should be argument given in main
// " find argv[] -type f | wc -l", "r" this is want i want stored in a char temp
if (!(in = popen("find /nfs/engfs/haquresh/Desktop -type f | wc -l", "r")))
{
return 1;
}
它应该是 C 语言中的基本字符操作,我只是很难使用它。任何帮助,将不胜感激。
最佳答案
请记住,调用任意参数作为代码的程序可能会造成严重的安全问题。
/* popen1.c */
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) {
FILE* fin;
int i;
char cmd[ 4096 ];
if (argc < 2) {
printf("Must specify arguments\n");
return -1;
}
sprintf(cmd, "find %s |wc -l", argv[1]);
fin = popen(cmd, "r");
if (!fin) {
perror("popen");
return -1;
}
while(!feof(fin)) {
if (fgets(line, sizeof(line), fin) != NULL)
printf("%s", line);
}
pclose(fin);
return 0;
}
编译为cc -opopen1 popen1.c
。
如此运行:./popen1/nfs/engfs/haquresh/Desktop
关于c - 使用 main 中给出的参数在 C 中进行字符串解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289813/