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]);
}