Основы программирования в Linux
Основы программирования в Linux читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Можно создать новый поток файла на основе дескриптора файла, открытого только для чтения, применив функцию
fdopenФункция
fdopenfopenfopenfdopenNULLВедение файлов и каталогов
Стандартные библиотеки и системные вызовы обеспечивают полный контроль над созданием и ведением файлов и каталогов.
chmod
С помощью системного вызова
chmodchmodДалее приведена синтаксическая запись вызова:
<b>#include <sys/stat.h></b><b>int chmod(const char *path, mode_t mode);</b>Права доступа к файлу, заданному параметром
pathmodemodeORchown
Суперпользователь может изменить владельца файла с помощью системного вызова chown.
<b>#include <sys/types.h> #include <unistd.h></b><b>int chown(const char *path, uid_t owner, gid_t group);</b>В вызове применяются числовые значения идентификаторов (ID) нового пользователя и группы (взятые из системных вызовов
getuidgetgidСтандарт POSIX в действительности допускает существование систем, в которых несуперпользователи могут изменять права владения файлом. Все "правильные" с точки зрения POSIX системы не допускают этого, но строго говоря, это расширение стандарта (в FIPS 151-2). Все виды систем, с которыми мы имеем дело в этой книге, подчиняются спецификации XSI (X/Open System Interface) и соблюдают на деле правила владения.
unlink, link и symlink
С помощью вызова
unlinkСистемный вызов
unlink<b>#include <unistd.h></b><b>int unlink(const char *path);</b><b>int link(const char *path1, const char *path2);</b><b>int symlink(const char *path1, const char *path2);</b>Если счетчик становится равен нулю и файл не открыт ни в одном процессе, он удаляется. В действительности элемент каталога всегда удаляется немедленно, а место, занятое содержимым файла, не очищается до тех пор, пока последний процесс (если таковой существует) не закроет файл. Этот вызов использует программа
rmlnlinkСоздание файла с помощью вызова
openunlinkСистемный вызов
linkpath1path2symlinkmkdir и rmdir
Вы можете создавать и удалять каталоги, применяя системные вызовы
mkdirrmdir<b>#include <sys/types.h>#include <sys/stat.h></b><b>int mkdir(const char *path, mode_t mode);</b>Системный вызов
mkdirmkdirmkdirpathO_CREATumask<b>#include <unistd.h></b><b>int rmdir(const char *path);</b>Системный вызов
rmdirrmdirchdir и getcwd
Программа может перемещаться по каталогам во многом так же, как пользователь перемещается по файловой системе. Как вы применяете в командной оболочке команду
cdchdir
