Mam następujący problem: Chcę zczytać sobie potok do tablicy charów, żeby potem odszukać w niej nazwy katalogów pokazanych przez ls. Znalazłem przykładowy kod, lekko zmodyfikowałem (oznaczone komentarzem linie) i lipa - nie działa. Niby się kompiluje, ale jak odpalam, to pisze: "Segmentation fault". Wie ktoś dlaczego?
#include <stdio.h>
int main(void)
{
FILE *pipein_fp, *pipeout_fp;
char readbuf[80];
/* Tworzymy jednokierunkowy potok za pomocą popen() */
if (( pipein_fp = popen("ls", "r")) == NULL)
{
perror("popen");
exit(1);
}
/* Tworzymy jednokierunkowy potok za pomocą popen() */
if (( pipeout_fp = popen("sort", "w")) == NULL)
{
perror("popen");
exit(1);
}
// char *tablica;
// int i=0;
/* Przetwarzanie */
while(fgets(readbuf, 80, pipein_fp)){
/* tablica[i]= */ fputs(readbuf, pipeout_fp);
// i++;
}
/* Zamknięcie potoków */
pclose(pipein_fp);
pclose(pipeout_fp);
return(0);
}