我正在尝试使用mmap将当前目录中的所有文件名存储在共享数组中。我可以将目录中的所有9个文件打印到屏幕上,但是当我尝试将它们存储在数组(shared_array)中并打印该数组时,所有条目都包含相同的字符串(file.txt)。提前感谢您的帮助!
char **shared_array;
shared_array= mmap(0,100*sizeof(char*),PROT_READ | PROT_WRITE,MAP_SHARED | MAP_ANON,-1,0);
char * filename;
const MAXLINE = 80;
char line [MAXLINE];
FILE *fp = popen("/bin/ls","r");
int i = 0;
while(fgets(line, MAXLINE,fp) !=NULL){
filename = line;
shared_array[i] = filename;
i++;
}
pclose(fp);
int j;
for(j=0;j<i;j++){
printf("\n%s",shared_array[j]);
}