« Отговор #5 -: May 19, 2008, 16:09 »
А, той примерът там е много лош, не случайно съм сложил такъв коментар отгоре на функцията.
Принципно идеята да се форква процес и с dup2 да се клонира pipe-а към стандартния изход е добра, лошото е че има един кофти страничен случай, в който това дето го викаш с system() не изписва нито един байт на стандартния изход. Тъй като по дефолт четенето не е non-blocking, родителският процес ще кисне вечно, чакайки да се изчете нещо от пайпа.
Обаче ако го изтресеш в non-blocking режим с fcntl(), тогава идват други проблеми, ще трябва да циклиш, четеш и лепиш стрингове за да стигнеш до крайният резултат.