Мне интересно написать утилиту, которая изменяет файлы PostScript. Он должен пересекать файл, принимать определенные решения о количестве страниц и размерах, а затем записывать вывод в файл или stdout, внося некоторые изменения в код PostScript.Чтение больших объемов файлов с помощью C
Что было бы хорошим способом обработки файлов в системе * NIX в этом случае? Я довольно новичок в трубах и разворачивании на C, и я понимаю, что в случае чтения файла напрямую я мог бы искать туда и обратно вокруг входного файла, но если вход напрямую передается в программу, я не может просто перемотать назад в начало ввода, поскольку вход может быть сетевым потоком, например, правильно?
Вместо того, чтобы хранить весь файл PS в памяти, который может расти огромным, кажется, что имеет смысл буферизовать входные данные на диске при выполнении первого анализа страницы, а затем перечитать из временного файла , произвести вывод и удалить временный файл. Если это жизнеспособное решение, где было бы хорошим местом для хранения такого файла в системе * NIX? Я не уверен, насколько безопасен такой код: программа потенциально может использоваться несколькими пользователями на одном сервере. Похоже, я бы обязательно сохранил файл где-то во временном каталоге, уникальном для данной учетной записи пользователя, а также предоставил временному файлу на диске довольно уникальное имя.
Поблагодарили бы за любые советы и указатели в этом сумасшедшем загадочном мире обработки файлов.
Это замечательно! Хотя мне кажется, что я немного избегаю изучения параллельного создания параллельных файлов :) – dmkc
В чем разница между 'mkstemp' и' mktemp'? – helpermethod
@Helper: Как указано в 'manktp (3)' man, 'mktemp()' имеет несколько проблем безопасности. –