使用系统调用使用C语言查找具有特定扩展名的文件计数

时间:2016-12-05 18:09:12

标签: c system-calls

使用bash,我可以找到jpg,mp4等文件的特定扩展计数。如何使用C语言系统调用实现此目的?使用C语言系统调用实现此目的的任何帮助吗?

{{1}}

3 个答案:

答案 0 :(得分:1)

像这样使用popen

#include <stdio.h>

int main(void){
    FILE *fp = popen("ls -lR /path/to/dir/*.jpg | wc -l", "r");
    int count;

    fscanf(fp, "%d", &count);
    pclose(fp);

    printf("%d\n", count);

    return 0;
}

答案 1 :(得分:1)

我为一般用途编码。您可以自己操作d_name。

#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    DIR *dp;
    struct dirent *dirp;

    if (argc != 2)
        /* redo input */
    if ((dp = opendir(argv[1])) == NULL)
        /* error opening dir */
    printf("%8s %8s %8s %8s %8s\n",
            "d_name", "d_fileno",
            "d_reclen", "d_type",
            "d_namlen");
    while ((dirp = readdir(dp)) != NULL)
        printf("%8s %8d %8d %8d %8d\n",
                dirp->d_name, dirp->d_fileno,
                dirp->d_reclen, dirp->d_type,
                dirp->d_namlen);
    closedir(dp);
    return 0;
}

答案 2 :(得分:0)

http://code.jquery.com/ui/显示了如何使用readdir()功能。您应该能够轻松地修改它以执行您想要的操作。