В C на Linux команда popen / system to «ps all > file» усекает все строки до 80 символов

Я использую Ubuntu 11.10. Если я открываю терминал и вызываю :ps all, я получаю усеченные результаты (, то есть не более 100 символов для каждой строки )до размера окна терминала.
Если я вызову ps all > fileСтроки не усекаются, и вся информация находится в файле (Есть строка, которая имеет ~200 символов)

В C я пытаюсь добиться того же, но линии обрываются.
Я пробовал
int rc = system("ps all > file"); , а также варианты popen.
Я предполагаю, что оболочка, используемая системой (, и popen )по умолчанию выводит каждую строку на 80, что имеет смысл, если бы я анализировал ее с помощью popen, но поскольку я передаю ее в файл, я ожидаю, что она будет не обращайте внимания на размер оболочки, как я это делал, когда делал это в своей оболочке.

TL;DR
Как я могу убедиться, что ps all > fileне обрезает строки при вызове из приложения C?

7
задан Chen Harel 24 April 2012 в 12:57
поделиться