c - 使用 main 中给出的参数在 C 中进行字符串解析

标签 c linux string char

我在 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/

相关文章:

string - 如何从 JavaFX 中的字符串加载 FXML

c - C 中的数组语法

objective-c - system() 在 cocoa 应用程序中调用

c - Windows 中 IP_RECVOPTS 和 IP_RECVRETOPTS 的等效项是什么

linux - 别名 - cd 后跟 ls

python - 使用python查找字符串中索引之前出现的两个单词

c - 我是否以正确的方式使用 strncmp 和 fgets ?

linux - 提取音频,再次操作和合并

linux - 如何将多行回显到来自 grep 结果的文件中

c# - 在 C# 中将字符串转换为 2 个小数位的最有效方法