Jump to content

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

(Перенаправлено с ENOSPC )


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

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

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

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

[ редактировать ]

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

 ssize_t write(int fildes, const void *buf, size_t nbyte);
Аргумент Описание
файлы
Дескриптор файла, полученный в результате вызова open() . Это целочисленное значение. Также могут быть заданы значения 0, 1, 2 для стандартного ввода, стандартного вывода и стандартной ошибки соответственно.
буф
Указывает на массив символов, содержимое которого будет записано в файл, на который указывает filedes.
нбайт
Указывает количество байтов, которые будут записаны из символьного массива buf в файл, на который указывает filedes.

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

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

См. также

[ редактировать ]
  1. ^ http://www.unix.com/man-page/FreeBSD/2/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» . Гитхаб .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d3c8a007cf0a34db5c3e566536437a61__1724979180
URL1:https://arc.ask3.ru/arc/aa/d3/61/d3c8a007cf0a34db5c3e566536437a61.html
Заголовок, (Title) документа по адресу, URL1:
write (system call) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)