问题:显示指定目录下的 .c 文件
算法:
1. opendir ( ) 打开文件夹
2. readdir ( ) 读取文件名
3. 通过字符串比对找出 .c 文件并打印输出
4. closedir ( ) 关闭文件夹
代码:
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
#include<string.h>int main(int argc,char* argv[]){DIR *pd = NULL;struct dirent *pitem = NULL;char *p = NULL;int len = 0;if(argc < 2){printf("The argument is too few.\n");return 1;}pd = opendir(argv[1]); // 打开文件夹pitem = readdir(pd); // 读取while(pitem != NULL){if(pitem->d_type == DT_REG){ // 如果是常规文件len = strlen(pitem->d_name); // 获取文件名长度if(len >= 2){p = pitem->d_name + len - 1 - 1;// 定位到倒数第二个字符if(strcmp(p,".c") == 0) // 找出文件结尾是.c的文件printf("%s\n",pitem->d_name); // 打印输出}}pitem = readdir(pd);}closedir(pd);pd = NULL;return 0;
}
输出:
p.s. 省略 gcc 编译过程 , ./ 表示 当前文件夹