Роббинс Арнольд
Шрифт:
Этот системный вызов происходит от 4.2 BSD Unix, и на ранних системах мог использоваться лишь для сокращения длины файла, отсюда и название. (Он был создан, чтобы облегчить реализацию операции урезания в Фортране.) На современных системах, включая Linux, имя является неправильным, поскольку с помощью этих вызовов можно также увеличить, а не только сократить длину файла. (Однако, POSIX указывает, что возможность увеличения размера файла относится к расширению XSI.)
Для этих вызовов сокращаемый файл должен иметь разрешение на запись (для
Эти вызовы сильно отличаются от '
Эти функции довольно специализированы; они используются лишь четыре раза во всем коде GNU Coreutils. Мы представляем пример использования
4.9. Резюме
• Когда системный вызов завершается неудачей, он обычно возвращает -1, а в глобальной переменной errno устанавливается предопределенное значение, указывающее на проблему. Для сообщений об ошибках могут использоваться функции
• Доступ к файлам осуществляется через небольшие целые, которые называются дескрипторами. Дескрипторы файлов для стандартного ввода, стандартного вывода и стандартной ошибки наследуются от родительского процесса программы. Другие получаются через
• Системные вызовы
• Для синхронного ввода/вывода предусмотрены дополнительные флаги для
• Системные вызовы
Упражнения
1. Используя лишь
2. Усовершенствуйте программу
3. Просмотрите страничку справки для proc(5) на системе GNU/Linux. В частности, посмотрите подраздел
4. Даже если вы пока этого не понимаете, постарайтесь скопировать сегмент кода из V7
5. (Простое) Предположив наличие
6. Каков результат выполнения '
7. Напишите простую версию программы
Откомпилируйте и запустите
8. Измените простую программу
9. Мы сказали, что для