2016-01-15 3 views
0

Я запускаю apache2 с FastCGI и хочу создать системный вызов записи. Printf работает, но я хочу использовать функцию write для оптимизации. Это возможно? Документы fastcgi и некоторые другие вопросы по этой теме предполагают, что вам не следует путаться с записью в stdout, кроме использования printf, но я не видел, чтобы кто-то прямо говорил об этом. Кроме того, в коде набора кода fastcgi есть #define для STDOUT, STDERR и STDIN. Я думаю, что это должно быть возможно, но я не вижу, чтобы кто-то это делал.FastCGI написать системный вызов для stdout (c)

+1

'write' не будет намного быстрее, чем' printf', поскольку накладные расходы ввода-вывода ограничивают скорость. Чего вы пытаетесь достичь? – fuz

+0

Я согласен с FUZxxl. Я думаю, что задача будет генерировать достаточное количество данных, чтобы сделать какую-либо измеримую разницу, прежде чем вы начнете блокироваться по пропускной способности сети. Но это может быть забавный эксперимент. Вызовите ffush (stdout), прежде чем вы начнете называть write(), если что-то сидит в буферах stdio. Как вы собираетесь измерять и оценивать различия? – jamieguinan

+0

Просто уточнить: это специально для тестирования производительности, поэтому printf vs write может на самом деле иметь значение. «Генерирование достаточного количества данных» будет позаботиться, не беспокойтесь ли вы об этом;) – dashingrogue

ответ

1

После LOT больше испытаний и рыться вокруг интернетов, я считаю, что это решает мою проблему. FCGI_fwrite(str, sizeof(char), strlen(str), stdout);

Просто вызова write не работает и с помощью дескриптора файла FCGI_stdout также не работает.

Смежные вопросы