Системное программирование в UNIX средствами Free Pascal




Литература - часть 4


[14]

Клинч иногда является следствием гораздо более запутанной ситуации, если установлению блокировки препятствуют одновременно несколько других блокировок.

[15]

В базовом документе POSIX 1003.1 средства IPC System V не вводятся.

[16]

Более точно порядок разрешения доступа к объекту IPC описан в спецификации SUSV2.

[17]

Протокол UDP не гарантирует доставку дейтаграмм; кроме того, может быть нарушен исходный порядок сообщений, допускается также случайное дублирование дейтаграмм. Приложения, использующие протокол UDP, должны обеспечивать контроль данных на прикладном уровне, для этого может потребоваться организация подтверждения доставки и повторной пересылки данных.

[18]

Потоки stdin, stdout

и stderr не следует закрывать: это может привести к аварийному завершению процесса, так как соответствующие структуры TFILE

часто размещены в статической, а не динамической памяти.

[19]

Опытные программисты не советуют использовать функцию fscanf

(scanf) для ввода данных, кроме случаев простого интерактивного ввода. Вместо функции fscanf

(scanf) предлагается использовать комбинацию вызовов fgets (gets) и sscanf. Недостаток функции fscanf

(scanf) в данном случае состоит в том, что при случайном нарушении формата строки вводимых данных эта функция может перейти к чтению следующей строки, поскольку функция fscanf (scanf) не отличает символ окончания строки от других разделителей полей. В такой ситуации сложно обработать ошибку входных данных корректно, а кроме того, ввод следующей строки тоже будет нарушен.

[20]

Для отладки программ, интенсивно использующих динамическую память, существуют специальные библиотеки, подменяющие стандартный механизм процедур семейства malloc. Эти библиотеки менее производительны, зато выполняют функцию «раннего предупреждения» подобных ошибок, то есть незамедлительно фиксируют нарушения правил работы с динамической памятью.

[21]

Полезно также знать о процедуре setsockopt, управляющей параметрами соединения.




Содержание  Назад