LINUX下C语言实现文件名检索

我想在指定文件夹内创建一个文件,文件名是有规律的,比方说“file1、file2。。。”,创建的文件是接着已经有的文件名而创建的,比方说,已经有file20了,那么我要创建的这个文件名就是file21.我如何检索这个文件夹内已经创建到那个文件了,要从那个编号的文件开始创建。

LINUX下C语言通过文件名检索创建多个文件,实现文件名有规律的变化test1,test2...这种功能,方法如下:

DIR *opendir(const char *filename);
struct dirent *readdir(DIR *dirp);
//利用这两个函数获取要建立文件的目录
 while( (psDirent=readdir(pdir)) != NULL )
 {
      //readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件
       struct stat st;
       stat( pcFileName, &st );
  
           if( S_ISDIR(st.st_mode) )
                     continue;//是目录继续循环
                  else
                      filecount++;//是文件就加1
}
//通过while循环创建文件名为文件(filecount+1)的文件。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-30
首先
DIR *opendir(const char *filename);
struct dirent *readdir(DIR *dirp);
利用这两个函数获取你目录下
while( (psDirent=readdir(pdir)) != NULL )
{
//readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件
struct stat st;
stat( pcFileName, &st );

if( S_ISDIR(st.st_mode) )
continue;//是目录继续循环
else
filecount++;//是文件就加1
}
从循环出来后创建文件名为file(filecount+1)的文件。
这个只是简单思路。最后别忘closedir。因为你的需求里,并未涉及文件创建个数的上限以及如果删掉某个文件后的需求。
通常,如果你目录下文件个数固定似乎更好办一些。本回答被提问者采纳

LINUX下C语言实现文件名检索
LINUX下C语言通过文件名检索创建多个文件,实现文件名有规律的变化test1,test2...这种功能,方法如下:DIR *opendir(const char *filename);struct dirent *readdir(DIR *dirp);\/\/利用这两个函数获取要建立文件的目录 while( (psDirent=readdir(pdir)) != NULL ) { \/\/readdir返回的是目录下...

LINUX下C语言实现文件名检索
filecount++;\/\/是文件就加1 } 从循环出来后创建文件名为file(filecount+1)的文件。这个只是简单思路。最后别忘closedir。因为你的需求里,并未涉及文件创建个数的上限以及如果删掉某个文件后的需求。通常,如果你目录下文件个数固定似乎更好办一些。

Linux中用C实现Grep命令搜索方法linuxcgrep
第一步:使用fopen函数,用文本文件中的每一行分别去匹配搜索字符串。第二步:首先调用strstr函数来完成字符串的比较,strstr函数如下:char *strstr(const char *haystack, const char *needle);第三步:如果匹配到搜索字符串,就打印出该行的内容。最后,可以将以上的代码整合为一个完整的函数,用来...

怎样使用C语言列出某个目录下的文件?
用C语言列出目录下的文件,在linux下可采用readdir()函数来实现,代码实现过程为:打开目录 循环读目录,输出目录下文件 关闭目录指针 参考代码:include <dirent.h>#include <stdio.h>int main(){ DIR *dirp; struct dirent *dp; dirp = opendir("."); \/\/打开目录指针 while ((...

怎么用linux终端运行c语言,我只能找到文件的位置但不会用gcc编译_百度...
1、先在你要实现C程序的目录下建立一个C程序,如:先进入要实现C的目录cd \/home 然后mkdir os(自己取的文件名) 2、使用vi命令编译你的C程序。如:vi 100.c(自己取的C文件名) ,按 i 键进入编辑命令,接下来就是编辑了,输完之后,按ESC,然后按shift+冒号,提示为冒号,输入wq(保存并退出...

C语言实现的ls命令源码分享
C语言实现的ls命令源码分享 ls 指令可以说是Linux下最常用的指令之一。它有许多的选项,其中有许多是很有用的`,你能否了解呢?下面列出了 ls 指令的绝大多数选项。1.列出具体文件 #ls -al \/\/这个最常用,可是往往又不彻底符合要求,2.列出一切子目录的文件:#ls -R \/\/上个指令仅仅列出了本目录...

在Linux下用C语言编程
\/* Linux 的默任个人的邮箱地址是 \/var\/spool\/mail\/用户的登录名 *\/ define MAIL "\/var\/spool\/mail\/hoyt"\/* 睡眠10秒钟 *\/ define SLEEP_TIME 10 main(void){ pid_t child;if((child=fork())==-1){ printf("Fork Error:%s\\n",strerror(errno));exit(1);} else if(child>0)while...

linux下,编写一个c语言程序实现...(详细见正文)!急!200分悬赏!_百度知...
参考ln -l命令的输出结果,编写了以下程序(即输出结果和ls -l命令的输出结果相似),通过命令行传入要查看的目录,如果没有传入参数,则显出当前目录:include <unistd.h> include <sys\/stat.h> include <sys\/types.h> include <dirent.h> include <stdio.h> include <string.h> include <stdlib...

linuxc读取文件内容linuxc读取文件
1、可以利用getenv函数来实现。在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过 echo$HOME来查看。而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlib.h,原型为 char*getenv(char*name);功能为获取名字为name的环境变量字符串。所以,下面代码...

代码| C语言根据可执行文件名获取进程运行信息
通过C语言,根据可执行文件名获取进程运行信息的代码示例如下。本文提供3年嵌入式物联网学习资源,包括C语言、Linux开发、数据结构等内容,以及软件开发、STM32单片机、ARM硬件开发、物联网通信开发、综合项目开发教程资料,同时附带笔试面试真题。以下是程序源码的主要部分:main.c文件:proc_info.c文件:pro...

相似回答