Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Потоки и файловый дескриптор в C/C++
Файловый дескриптор - это целое неотрицательное число. Вот только чему соответствует дескриптор? Файлу или потоку?

 Re: Потоки и файловый дескриптор в C/C++
Аватара пользователя
Строго говоря, ни тому, ни другому, но очень похоже на поток.
Согласно POSIX, описание открытого файла (open file description) может быть связано либо с дескриптором, либо с потоком и включает в себя собственно файл, текущее положение в файле (offset), права доступа и прочие флаги.
Фактически, open file description - это запись в некоторой общесистемной таблице, дескриптор - это запись в некоторой таблице, принадлежащей процессу, каждому дескриптору соответствует некоторое open file description, поток - это структура, включающая в себя дескриптор и какие-то флаги, например, тип буферизации.

 Re: Потоки и файловый дескриптор в C/C++
Xaositect
Получается, когда мы обращаемся к потоку, то поток через дескриптор понимает с каким файлом мы работаем?

 Re: Потоки и файловый дескриптор в C/C++
Там, помнится, очень накручено. Система, Цэ, да ещё ++ поверх всего этого. Поток может вообще работать со строкой. Один из вариантов — файловый поток. Он, да, хранит где-то в себе дескриптор файла, по которому операционная система определяет файл.

 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group