stringtranslate.com

запись (системный вызов)


Запись одна из самых основных процедур, предоставляемых ядром операционной системы типа Unix . Она записывает данные из буфера, объявленного пользователем, на заданное устройство, например, в файл. Это основной способ вывода данных из программы путем непосредственного использования системного вызова. Место назначения идентифицируется числовым кодом . Данные , которые необходимо записать, например, фрагмент текста, определяются указателем и размером, заданным в количестве байтов.

writeТаким образом, принимается три аргумента:

  1. Код файла ( дескриптор файла или fd ).
  2. Указатель на буфер , в котором хранятся данные ( buf ).
  3. Количество байтов для записи из буфера ( nbytes ).

Использование POSIX

Интерфейс вызова записи [1] [2] [3] стандартизирован спецификацией POSIX. Данные записываются в файл путем вызова функции записи. Прототип функции:

 ssize_t write ( int fildes , const void * buf , size_t nbyte );       

В приведенном выше синтаксисе ssize_tэто typedef. Это знаковый тип данных, определенный в stddef.h. Обратите внимание, что write()не возвращает беззнаковое значение; он возвращает -1 в случае возникновения ошибки, поэтому он должен возвращать знаковое значение.
Функция записи возвращает количество байтов, успешно записанных в файл, которое иногда может быть меньше указанного nbytes . Он возвращает -1, если возникает исключительная ситуация, см. раздел об ошибках ниже.

Линукс

В Linux запись — это системный вызов номер 1. [4]

Смотрите также

Ссылки

  1. ^ http://www.unix.com/man-page/FreeBSD/2/write/ Страница руководства по Write
  2. ^ https://www.gnu.org/s/hello/manual/libc/I_002fO-Primitives.html#I_002fO-Primitives Примитивы ввода-вывода
  3. ^ «Пиши».
  4. ^ "Linux/Arch/X86/Entry/Syscalls/Syscall_64.TBL в главном · torvalds/Linux". GitHub .

Внешние ссылки