syscalls (1115160), страница 3

Файл №1115160 syscalls (Описание различных средств (библиотек_ языков_ и пр.)) 3 страницаsyscalls (1115160) страница 32019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Если такое поведениенежелательно, нужно использовать link.Возвращаемое значениеПри успешном завершении возвращается 0. При ошибке возвращается -1 и переменнаяerrno устанавливается в код ошибки.Коды ошибокEPERMEFAULTEACCESфайловая система не поддерживает создание жёстких связейoldpath или newpath указывают за пределы адресного пространства процессакаталог, содержащий newpath не допускает запись в него; либо один из каталогов в oldpath не допускает поиск11ENAMETOOLONGENOENTENOTDIRENOMEMEROFSEEXISTELOOPENOSPCEIO11слишком длинный путь oldpath или newpathкомпонента каталога в oldpath или newpath не существует, либо является«висящей» символической ссылкойкомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымнедостаточно памяти ядрафайловая система работает в режиме «только чтение»newpath уже существуетслишком много символических связей было встречено при прослеживании пути newpath или oldpathна устройстве нет свободного места для новой записи в каталогеошибка ввода/вывода на устройствеreadlinkreadlink — считать значение символической связи.Использование#include <unistd.h>int readlink(const char *path, char *buf, size_t bufsiz);Описаниеreadlink помещает содержимое символической связи path в буфер buf, который имеет размер bufsiz.

readlink не добавляет символ ’\0’ в конец строки. Содержимое символической связи ограничивается bufsiz символами, если размер буфера недостаточен дляразмещения всей связи.Возвращаемое значениеСистемный вызов возвращает число символов, записанное в буфер в случае успешногозавершения. В случае ошибки возвращается -1 и переменная errno устанавливается в кодошибки.Коды ошибокENOTDIREINVALENAMETOOLONGENOENTEACCESELOOPEIOEFAULTENOMEMкомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымbufsiz неположителен; либо path не является символической связьюслишком длинный путь pathкомпонента каталога в path не существует, либо является «висящей» символической ссылкой; символическая связь path не существуетодин из каталогов в path не допускает поискслишком много символических связей было встречено при прослеживании пути pathошибка ввода/вывода на устройствеpath или buf указывают за пределы адресного пространства процессанедостаточно памяти ядра1212unlinkunlink — уничтожить имя и, возможно, файл, на который оно указывает.Использование#include <unistd.h>int unlink(const char *pathname);Описаниеunlink уничтожает имя в файловой системе.

Если это имя было последним, котороессылалось на файл, и файл не был открыт никаким процессом, файл уничтожается и местона диске, которое он занимал, становится доступным для повторного использования.Если имя pathname было последней ссылкой на файл, но какие-либо процессы держат этот файл открытым, файл продолжает существование до момента, когда будет закрытпоследний файловый дескриптор, ссылающийся на файл.Если имя pathname является именем символической связи, уничтожается сама символическая связь, а не файл, на который она указывает.Возвращаемое значениеПри успешном завершении возвращается 0. В случае ошибки возвращается -1, и переменная errno устанавливается в код ошибки.Коды ошибокEFAULTEACCESEPERMENAMETOOLONGENOENTENOTDIREISDIRENOMEMEROFSELOOPEIO13path или buf указывают за пределы адресного пространства процессакаталог, содержащий pathname не допускает запись в него; либо один из каталогов не допускает поиску каталога, содержащего удаляемый файл, установлен бит t, и uid процессане совпадает с uid удаляемого файла или родительского каталога; pathnameявляется каталогомслишком длинный путь pathnameкомпонента каталога в pathname не существует, либо является «висящей»символической ссылкойкомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымpathname является каталогомнедостаточно памяти ядраpathname находится в файловой системе, которая работает в режиме «толькочтение»слишком много символических связей было встречено при прослеживании пути pathошибка ввода/вывода на устройствеrenamerename — изменить имя или расположение файла.13Использование#include <stdio.h>int rename(const char *oldpath, const char *newpath);Описаниеrename переименовывает файл, перемещая его между каталогами, если необходимо.Другие жёсткие связи (созданные с помощью link) не затрагиваются.Если newpath уже существует, он будет атомарно заменён так, что для другого процесса,который работает с newpath, он всегда будет существовать.

Однако может существоватьпромежуток времени, в течение которого oldpath и newpath будут указывать на один итот же файл.Если newpath существует, но операция по какой-либо причине завершается неудачно,rename гарантирует, что newpath останется неизменным.Если oldpath является символической связью, связь переименовывается, а еслиnewpath является символической связью, она уничтожается.Возвращаемое значениеПри успешном завершении операции возвращается 0.

При ошибке возвращается -1, ипеременная errno устанавливается в код ошибки.Коды ошибокEISDIREXDEVENOTEMPTY, EEXISTEBUSYEINVALENOTDIREFAULTEACCESENAMETOOLONGENOENTENOMEMEROFSELOOPENOSPCnewpath существует и является каталогом, а oldpath не является каталогомoldpath и newpath не находятся на одной файловой системеnewpath — непустой каталог, то есть содержит записи, отличные от . и ..oldpath или newpath используются другим процессом или операционнойсистемой таким образом, что делает операцию невозможнойпопытка сделать каталог подкаталогом самого себякомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковым; либо oldpath является каталогом, а newpath существует и не является каталогомoldpath или newpath указывают за пределы адресного пространства процессазакрыт доступ на запись к необходимым каталогам; каталог в пути oldpathили newpath не позволяют вести поиск в нем; файловая система не допускаеттакую операциюслишком длинный путь oldpath или newpathкомпонента каталога существует, либо является «висящей» символическойссылкойнедостаточно памяти ядраpathname находится в файловой системе, которая работает в режиме «толькочтение»слишком много символических связей было встречено при прослеживании пути pathна устройстве не осталось места для новой записи в каталоге1414mkdirmkdir — создать каталог.Использование#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>int mkdir(const char *pathname, mode_t mode);Описаниеmkdir создаёт новый каталог с именем pathname.mode задаёт права доступа к создаваемому каталогу.

Параметр mode модифицируетсязначением umask процесса стандартным способом (mode & ~umask).Вновь созданный каталог будет иметь такого владельца, каков euid процесса. Каталогунаследует идентификатор группы от родительского каталога.Возвращаемое значениеПри успешном завершении mkdir возвращает 0. При ошибке возвращается -1 и переменная errno устанавливается в код ошибки.Коды ошибокEEXISTEFAULTEACCESENAMETOOLONGENOENTENOTDIRENOMEMEROFSELOOPENOSPC15pathname уже существует (не обязательно каталог)pathname указывает за пределы адресного пространства процессакаталог, содержащий pathname не допускает запись в него; либо один из каталогов не допускает поискслишком длинный путь pathnameкомпонента каталога в pathname не существует, либо является «висящей»символической ссылкойкомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымнедостаточно памяти ядраpathname находится в файловой системе, которая работает в режиме «толькочтение»слишком много символических связей было встречено при прослеживании пути pathна устройстве не осталось свободного места; либо исчерпана квота пользователяrmdirrmdir — удалить каталог.Использование15#include <unistd.h>int rmdir(const char *pathname);Описаниеrmdir удаляет каталог, который должен быть пустым.Возвращаемое значениеПри успешном завершении возвращается 0.

При ошибке возвращается -1, и переменнаяerrno устанавливается в код ошибки.Коды ошибокEPERMEFAULTEACCESENAMETOOLONGENOENTENOTDIRENOTEMPTYEBUSYENOMEMEROFSELOOP16файловая система не поддерживает удаление каталогов; у каталога, содержащего удаляемый файл, установлен бит t, и uid процесса не совпадает с uidудаляемого файла или родительского каталога;pathname указывает за пределы адресного пространства процессакаталог, содержащий pathname не допускает запись в него; либо один из каталогов не допускает поискслишком длинный путь pathnameкомпонента каталога в pathname не существует, либо является «висящей»символической ссылкойкомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымкаталог содержит записи, отличные от .

и ..каталог является текущим или корневым каталогом некоторого процессанедостаточно памяти ядраpathname находится в файловой системе, которая работает в режиме «толькочтение»слишком много символических связей было встречено при прослеживании пути pathchdir, fchdirchdir, fchdir — сменить текущий каталог.Использование#include <unistd.h>int chdir(const char *path);int fchdir(int fd);Описаниеchdir устанавливает заданный параметром каталог path как текущий. fchdir устанавливает текущим каталог, заданный открытым файловым дескриптором.16Возвращаемое значениеПри успешном завершении возвращается 0. При ошибке возвращается -1, и переменнаяerrno устанавливается в код ошибки.Коды ошибокКоды ошибок зависят от файловой системы. Наиболее общие приведены ниже.EFAULTENAMETOOLONGENOENTENOMEMENOTDIREACCESELOOPEBADF17path указывает за пределы адресного пространства процессаслишком длинный путь pathкаталог path не существуетнедостаточно памяти ядракомпонента пути, заявленная в пути как каталог, на самом деле не являетсятаковымодин из каталогов-компонент пути не допускает поиск в немслишком много символических связей было встречено при прослеживании пути pathfd не является допустимым файловым дескрипторомgetcwdgetcwd — получить имя текущего каталога.Использование#include <unistd.h>char *getcwd(char *buf, size_t size);Описаниеgetcwd копирует абсолютное имя текущего рабочего каталога в массив, на который указывает buf, размера size.

Характеристики

Тип файла
PDF-файл
Размер
122,57 Kb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

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