LINUX.ORG.RU

[popen] сегфолт в цикле


0

1

пытаюсь запустить popen в цикле, например:

...
for ( ;i < N; i++ ) 
{
    ptr = popen ("ls -l", "r"); //ls -l для примера
    fgets (str, 9, ptr);
    pclose (ptr);
}
...

вылетает ошибка:

13 ptr = popen («ls -l», «r»);
(gdb)
Detaching after fork from child process 2410.
14 fgets (str, 9, ptr);
(gdb)

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff736c040 in _IO_getline_info_internal () from /lib64/libc.so.6

в чем проблема?

Минимально — ты не проверяешь, что popen сработал и вернул тебе не NULL;

Далее, ты не показываешь как ты определил str...

catap ★★★★★
()
Ответ на: комментарий от catap

спасибо

str была определена выше этого куска кода как char *str, а не char str[size]

justdoit
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.