ここで私を助けてくれますか?その名前に文字が存在する場合は、各ディレクトリエントリをチェックしています。明らかにそれは動作していません。私の主な質問は、メモリとしてネームリスト[n] - > d_nameを正しく使用していることです。dirのエントリのmemchr C
#include <dirent.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int main(void)
{
struct dirent **namelist;
int n;
n = scandir(".", &namelist, 0, alphasort);
if (n < 0)
perror("scandir");
else
{
char * search;
while (n--) {
search= (char*) memchr(namelist[n]->d_name,'a',(sizeof(namelist[n]->d_name)));
if(search !=NULL){
printf("%s\n", namelist[n]->d_name);
free(namelist[n]);
}
char * search;
}
free(namelist);
}
}
を使用する必要があります。しかし、働いてくれてありがとう:) – user975044
mm strchrの前に私は現在のディレクトリのすべてのファイルとディレクトリを取得していました.. strchrでmemchrを切り替えた後、正常に動作しました。私はそれが何か違いがあれば(おそらく)ubuntuにいる – user975044