_syscalls_ mans (Мини-учебник с ejudge = Чернокнижка)

PDF-файл _syscalls_ mans (Мини-учебник с ejudge = Чернокнижка) Практика расчётов на ПЭВМ (37191): Книга - 3 семестр_syscalls_ mans (Мини-учебник с ejudge = Чернокнижка) - PDF (37191) - СтудИзба2019-05-08СтудИзба

Описание файла

Файл "_syscalls_ mans" внутри архива находится в папке "Мини-учебник с ejudge = Чернокнижка". PDF-файл из архива "Мини-учебник с ejudge = Чернокнижка", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Содержание1 open, creat22 close33 dup, dup244 read55 write56 lseek67 stat, fstat, lstat78 access99 link1010 symlink1111 readlink1212 unlink1313 rename1314 mkdir1515 rmdir1516 chdir, fchdir1617 getcwd1718 opendir1719 readdir1820 telldir1921 seekdir1922 closedir1923 chmod, fchmod2024 utime2125 umask2226 truncate, ftruncate2211open, creatopen, creat — открыть и возможно создать файл.Использование#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);int creat(const char *pathname, mode_t mode);ОписаниеСистемный вызов open() используется для преобразования пути к файлу в файловыйдескриптор (небольшое неотрицательное число, которое используется в операциях ввода/вывода read, write и др.). Если вызов завершился успешно, возвращается файловый дескриптор с минимальным номером, не открытый данным процессом.

Вызов создаёт новыйоткрытый файл, не разделяемый с другими процессами (однако разделяемые открытые файлы могут возникнуть вследствие вызова fork()). Новый файловый дескриптор установленкак не закрываемый в результате операции exec() (см. также fcntl()). Текущее положение в файле установлено на начало файла.flags может быть один из O_RDONLY, O_WRONLY или O_RDWR, что означает открытиетолько на чтение, только на запись, либо и на чтение, и на запись.flags также могут быть побитово объединены с одним или несколькими из следующих.O_CREAT — если файл не существует, он будет создан.O_EXCL — когда используется с O_CREAT, если файл с таким именем уже существует,вызов завершается с ошибкой.O_TRUNC — если файл уже существует, он очищается.O_APPEND — файл открывается в режиме добавления.

Перед каждой записью, указатель текущего положения в файле позиционируется на конец файла, как при lseek().Некоторые из этих необязательных флагов могут быть изменены с использованиемfcntl после того, как файл был открыт.mode определяет права доступа к файлу, если создаётся новый файл. Права доступа модифицируются с использованием umask процесса как обычно (mode & ~umask).Для mode существуют символические константы:S_IRWXU00700S_IRUSR (S_IREAD)S_IWUSR (S_IWRITE)S_IXUSR (S_IEXEC)S_IRWXGS_IRGRPS_IWGRPS_IXGRPS_IRWXOS_IROTHS_IWOTHS_IXOTH0040000200001000007000040000200001000007000040000200001пользователь (владелец файла) имеет права на запись,чтение и выполнение.пользователь имеет права на чтение.пользователь имеет права на запись.пользователь имеет права на выполнение.группа имеет права на чтение, запись и выполнение.группа имеет права на чтение.группа имеет права на запись.группа имеет права на выполнение.прочие имеют права на чтение, запись и выполнение.прочие имеют права на чтение.прочие имеют права на запись.прочие имеют права на выполнение.2mode должен всегда быть указан, когда O_CREAT указан в flags.

mode игнорируется впротивном случае.creat эквивалентен open с флагами O_CREAT|O_WRONLY|O_TRUNC.Возвращаемое значениеopen и creat возвращают новый файловый дескриптор, или -1 в случае ошибки, тогда errno устанавливается в код ошибки. open может открывать специальные файлыустройств, но не может создавать их, для этого используется mknod.Коды ошибокEEXISTEISDIREACCESENAMETOOLONGENOENTENOTDIREROFSETXTBSYEFAULTELOOPENOSPCENOMEMEMFILEENFILE2файл с данным путём существует и O_CREAT и O_EXCL были заданы в флагах.данный путь указывает на каталог, а запрошенный метод доступа предполагаетзапись.запрошенный режим доступа не разрешён, либо один из каталогов в пути кфайлу не позволяет поиск в нем, либо файл не существует и в доступе на записьк родительскому каталогу отказано.путь слишком длинный.компонента имени каталога в пути не существует, либо висячая символическаяссылка.компонента пути, используемая как каталог, не является каталогом.путь указывает на файл на файловой системе, доступной только на чтение, ирежим записи был запрошен.путь указывает на исполняемый файл, который запущен на выполнение, и режим записи был запрошен.pathname представляет собой недопустимый адрес.слишком много символических ссылок при трансляции пути.на устройстве не осталось свободного места.недостаточно памяти для ядра.процесс уже открыл максимальное количество файлов.достигнут лимит на число открытых файлов в системе.closeclose — закрыть файловый дескриптор.Использование#include <unistd.h>int close(int fd);Описаниеclose закрывает файловый дескриптор, который после этого не ссылается ни на какойфайл и может быть использован повторно.Если fd — последняя копия некоторого файлового дескриптора, все ресурсы, ассоциированные с ним, освобождаются; если данный дескриптор был последним дескриптором,ссылающимся на некоторый файл, который был удалён с помощью unlink, файл и все егоданные удаляются.3Возвращаемое значениеclose возвращает 0 при успешном завершении и -1 в случае ошибки.Коды ошибокEBADFfd — неверный файловый дескриптор.ЗамечанияОтсутствие проверки возвращаемого close значения является очень частой, но тем неменее серьёзной ошибкой.

В файловых системах, которые используют буферизацию записидля увеличения производительности, write может успешно завершаться, хотя данные ещёне были записаны на диск. Ошибка может быть возвращена при последующих операцияхwrite, и гарантировано, что ошибка будет возвращена при закрытии файла. Отсутствиепроверки на возвращаемое close значение может вести к незамеченной потере данных.3dup, dup2dup, dup2 — скопировать файловый дескриптор.Использование#include <unistd.h>int dup(int oldfd);int dup2(int oldfd, int newfd);Описаниеdup и dup2 создают копию файлового дескриптора oldfd.Старый и новый файловые дескрипторы полностью эквивалентны.

Они разделяют указатели позиции в файле и флаги. Например, если позиция в файле модифицирована с помощьюlseek у одного из файловых дескрипторов, она также изменяется и у другого файлового дескриптора.Старый и новый дескрипторы не разделяют флаг закрытия при exec.Для нового дескриптора dup использует свободный дескриптор с минимальным номером.dup2 делает дескриптор newfd копией oldfd, закрывая newfd при необходимости.Возвращаемое значениеdup и dup2 возвращают новый дескриптор, или -1 в случае ошибки, и в этом случаеerrno устанавливается в код ошибки.Коды ошибокEBADFEMFILEневерный файловый дескриптор oldfd или newfd.процесс уже открыл максимальное количество файлов.44readread — читать из файлового дескриптора.Использование#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);Описаниеread пытается считать до count байт включительно из файлового дескриптора fd вбуфер, начинающийся с buf.Если count равен 0, read возвращает 0 без других последствий.Возвращаемое значениеПри успешном завершении возвращается число считанных байт (ноль означает конецфайла), и текущая позиция в файле продвигается на это число.

Не является ошибкой ситуация, когда число считанных байт меньше числа запрошенных байт, это может иметь место, например, при чтении с терминала, или когда read был прерван приходом сигнала. Приошибке возвращается -1 и переменная errno устанавливается в код ошибки.Коды ошибокEINTREAGAINEIOEISDIREBADFEINVALEFAULT5Системный вызов был прерван приходом сигнала, и не было считано никаких данных.Для файлового дескриптора установлен неблокирующийся режим (O_NONBLOCK), инет данных доступных немедленно.Ошибка ввода/вывода.

Может случиться, например, если фоновый процесс пытаетсясчитать данные с управляющего терминала, и процесс блокирует SIGTTIN.fd ссылается на каталог.fd — неверный файловый дескриптор или не открыт на чтение.fd связан с объектом, который не допускает чтения.buf представляет собой недопустимый адрес.writewrite — записать данные в файловый дескриптор.Использование#include <unistd.h>ssize_t write(int fd, const void *buf, size_t count);Описаниеwrite записывает до count байт включительно в файл, на который ссылается файловый дескриптор fd, из буфера, начинающегося по адресу buf.5Возвращаемое значениеПри успешном завершении возвращается количество записанных байт (0 обозначает, чтоничего не было записано). При ошибке возвращается -1, и переменная errno устанавливается в код ошибки. Если count равен 0, и файловый дескриптор ссылается на обычныйфайл, возвращается 0 без других эффектов.Коды ошибокEINTREAGAINEIOEISDIREBADFEINVALEFAULTEPIPEENOSPC6Системный вызов был прерван приходом сигнала, и не было записано никаких данных.Для файлового дескриптора установлен неблокирующийся режим (O_NONBLOCK), иданные не могут быть записаны немедленно.Ошибка ввода/вывода.fd ссылается на каталог.fd — неверный файловый дескриптор или не открыт на запись.fd связан с объектом, который не допускает записи.buf представляет собой недопустимый адрес.fd связан с каналом или сокетом, другой конец которого закрыт.

В этом случае процессполучает сигнал SIGPIPE, после чего возвращается эта ошибка.На устройстве не осталось места для данных.lseeklseek — переместить указатель текущего положения в файле.Использование#include <sys/types.h>#include <unistd.h>off_t lseek(int fildes, off_t offset, int whence);ОписаниеСистемный вызов lseek перемещает указатель текущего положения в файловом дескрипторе fildes на значение offset согласно директиве whence.SEEK_SET 0 offset отсчитывается от начала файла.SEEK_CUR 1 offset отсчитывается от текущего положения.SEEK_END 2 offset отсчитывается от текущего размера файла.lseek позволяет устанавливать указатель положения за текущий конец файла.

Если после этого в это место будут записаны данные, чтения в «дыре» будут возвращать нули до техпор, пока в дыру не будут записаны данные.Возвращаемое значениеПри успешном завершении lseek возвращает новое положение указателя относительноначала файла, измеренное в байтах. При ошибке возвращается значение (off_t) -1, ипеременная errno устанавливается в код ошибки.6Коды ошибокEBADFEINVALESPIPEfildes — неверный файловый дескриптор.whence имеет недопустимое значение.fildes ассоциирован с каналом, сокетом или FIFO.ОграниченияНе все устройства (например терминалы), поддерживают операцию lseek.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5192
Авторов
на СтудИзбе
433
Средний доход
с одного платного файла
Обучение Подробнее