C语言linux简单编程,遍历文件夹获得文件名,调试不对,求助!!谢谢!!

2024-11-29 17:41:35
推荐回答(3个)
回答(1):

opendir() 的参数不对。不应该是有通配符的*.jp2形式,而应该是一个指定的目录。
看你的需求描述,建议你用scandir函数,可能更方便一些。
scandir可以指定一个filter。只返回满足条件的项目。

下面是参考linux中scandir man page 里的例子写的一段参考代码。

#include
int myfilter(const struct dirent *)
{
// 如果文件以0开头且有.jp2后缀,返回1
// 否则 返回0
}

main(){
struct dirent **namelist;
int n;
n = scandir(DIRNAME, &namelist, myfilter, alphasort);
if (n < 0)
perror("scandir");
else {
while(n--) {
printf("%s\n", namelist[n]->d_name);
free(namelist[n]);
}
free(namelist);
}
}

回答(2):

C读写文件函数有两种,一个是系统的,还有一个是C函数库的记得,好像是系统的文件句柄(file id)比较简单,然后函数库的那个提供了一个结构体,具体的记不请了....好长时间没写...

#include
#include

int main(int argc, char **argv)
{
int fid;
char buff[4096];

fid = open(argv[1],O_WRONLY);
if (fid==-1)
{
perror(argv[1]);
exit(1);
}

while (fgets(buff,4096,stdin)!=NULL)
{
write(fid,buff,strlen(buff));
}

close(fid);
}
另外,团IDC网上有许多产品团购,便宜有口碑

回答(3):

那就关了系统从新来一次,那是有些不好用。。。。。。。慢慢的来!仔细检查几遍。。。