Открыть для общего доступа файл, связанный с файловым дескриптором
#include <unistd.h>
                                       
int sopenfd( int fd,
             int oflag,
             int sflag );
  
    - fd
- Файловый дескриптор, ассоциированный с файлом.
- oflag
- Комбинация флагов, определяющих статус и режим открытия файла (битовые константы определены в <fcntl.h>):  -  O_RDONLY   
-  открытие только для чтения.  
-  O_WRONLY   
-  открытие только для записи.  
-  O_RDWR   
-  открытие для чтения и записи.  
-  O_APPEND   
-  открытие для дополнения.  
-  O_CREAT   
-  создать файл, если он не существует (игнорируется, если файл уже создан).  
-  O_TRUNC   
-  обнуление размера существующего файла (игнорируется, если файл не существует).  
 
- sflag
- Режим совместного доступа к файлу (комбинация битов, описанных в <share.h>):  -  SH_COMPAT   
-  режим совместимости.  
-  SH_DENYRW   
-  предотвращает чтение или запись в файл.  
-  SH_DENYWR   
-  предотвращает запись в файл.  
-  SH_DENYRD   
-  предотвращает чтение файла.  
-  SH_DENYNO   
-  разрешает чтение и запись в файл.  
 
libc
Функция sopenfd() открывает для совместного доступа файл, ассоциированный с файловым дескриптором fd. Режим доступа oflag должен соответствовать или быть более ограниченным, чем режим доступа к уже открытытому файловому дескриптору fd.
Обратите внимание, что:
openfd( fd, oflag );
эквивалентно следующему:
sopenfd( fd, oflag, SH_DENYNO );
Файловый дескриптор. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.
 
  -  EBADF   
-  Некорректный файловый дескриптор fd.    
-  EACCES   
-  Режим доступа oflag не соответствует или менее ограниченный, чем режим доступа к файловому дескриптору fd.    
-  EBUSY   
-  Режим совместного доступа (sflag) запрещен из-за существования конфликтующего вызова sopen().  
Unix
 
-  Да  
-  Обработчик прерываний   
-  Нет  
-  Обработчик сигналов   
-  Да  
-  В потоке   
-  Да  
 openfd()
 
Предыдущий раздел:  Описание API системной библиотеки