Московский физико-технический институт
Опубликован: 16.09.2004 | Доступ: свободный | Студентов: 7857 / 1654 | Оценка: 4.44 / 4.28 | Длительность: 15:33:00
Лекция 1:

Введение в курс практических занятий. Знакомство с операционной системой UNIX

Лекция 1: 1234567 || Лекция 2 >

Системные вызовы getuid и getgid

Узнать идентификатор пользователя, запустившего программу на исполнение, – UID и идентификатор группы, к которой он относится, – GID можно с помощью системных вызовов getuid() и getgid() , применив их внутри этой программы.

Системные вызовы getuid() и getgid()

Прототипы системных вызовов

#include <sys/types.h>
#include <unistd.h>
uid_t getuid(void);
gid_t getgid(void);

Описание системных вызовов

Системный вызов getuid возвращает идентификатор пользователя для текущего процесса.

Системный вызов getgid возвращает идентификатор группы пользователя для текущего процесса.

Типы данных uid_t и gid_t являются синонимами для одного из целочисленных типов языка C.

Компиляция программ на языке C в UNIX и запуск их на счет

Теперь мы готовы к тому, чтобы написать первую программу в нашем курсе. Осталось только научиться компилировать программы на языке C и запускать их на счет. Для компиляции программ в Linux мы будем применять компилятор gcc.

Для того чтобы он нормально работал, необходимо, чтобы исходные файлы, содержащие текст программы, имели имена, заканчивающиеся на .c.

В простейшем случае откомпилировать программу можно, запуская компилятор командой

gcc имя_исходного_файла

Если программа была написана без ошибок, то компилятор создаст исполняемый файл с именем a.out. Изменить имя создаваемого исполняемого файла можно, задав его с помощью опции -o:

gcc имя_исходного_файла -o 
    имя_исполняемого_файла

Компилятор gcc имеет несколько сотен возможных опций. Получить информацию о них вы можете в UNIX Manual.

"Узнайте у своего системного администратора", как называется компилятор с языка C для вашей операционной системы и какие опции он имеет. Обычно во всех версиях UNIX имеется компилятор с именем cc, поддерживающий опцию –о.

Запустить программу на исполнение можно, набрав имя исполняемого файла и нажав клавишу <Enter>.

Написание, компиляция и запуск программы c использованием системных вызовов getuid() и getgid()

Напишите, откомпилируйте и запустите программу, которая печатала бы идентификатор пользователя, запустившего программу, и идентификатор его группы.

Лекция 1: 1234567 || Лекция 2 >
лия логовина
лия логовина

организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2.

Макар Оганесов
Макар Оганесов