我正在尝试使用 popen() 构建一个字符串数组,但数组中的每个索引都是返回的最后一个字符串。我最终只是想将所有文件的目录列表放入一个数组中。
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *fp;
fp = popen("find ~/ -maxdepth 1 -type f", "r");
if (fp == NULL) { printf("Failed to run command\n" ); exit; }
char path[999];
char* rawdata[999];
int i = 0;
while (fgets(path, sizeof(path)-1, fp) != NULL) {
rawdata[i] = path; // Shouldn't this assign every index
i++; // a different string ?
}
pclose(fp);
/* Below, every index is the same string ? */
printf("\n%s", rawdata[0]);
printf("\n%s", rawdata[1]);
printf("\n%s", rawdata[2]);
}