LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Существуют гарантии другого, прописаны в каком-то стандарте, а может даже и в нескольких. Ну и во всех известных юниксах так и есть: новый файловый дескриптор (кроме dup2()) всегда создаётся с минимальным свободным номером. И никакого wrap: файловый дескриптор это индекс к какому-то массиву в описании процесса в ядре, их количество ограничено длиной этого массива, хоть сама длина и не фиксирована нигде.

А применение такое: closefrom(3) закроет всё кроме in/out/err, можно добавить ещё что-то незакрываемое под номерами 3 4 итд. Для того, чтобы дочерний процесс не смог злонамеренно или из-за бага воспользоваться утёкшими (в комплекте с открытыми файлами) правами.

Исходная версия firkax, :

Существуют гарантии другого, прописаны в каком-то стандарте, а может даже и в нескольких. Ну и во всех известных юниксах так и есть: новый файловый дескриптор (кроме dup2()) всегда создаётся с минимальным свободным номером. И никакого wrap: файловый дескриптор это индекс к какому-то массиву в описании процесса в ядре, их количество ограничено длиной этого массива, хоть сама длина и не фиксирована нигде.

А применение такое: closefrom(3) закроет всё кроме in/out/err, можно добавить ещё что-то незакрываемое под номерами 3 4 итд.