организовать двустороннюю поочередную связь процесса-родителя и процесса-ребенка через pipe, используя для синхронизации сигналы sigusr1 и sigusr2. |
Введение в курс практических занятий. Знакомство с операционной системой UNIX
Системные вызовы getuid и getgid
Узнать идентификатор пользователя, запустившего программу на исполнение, – UID и идентификатор группы, к которой он относится, – GID можно с помощью системных вызовов getuid() и getgid() , применив их внутри этой программы.
Компиляция программ на языке C в UNIX и запуск их на счет
Теперь мы готовы к тому, чтобы написать первую программу в нашем курсе. Осталось только научиться компилировать программы на языке C и запускать их на счет. Для компиляции программ в Linux мы будем применять компилятор gcc.
Для того чтобы он нормально работал, необходимо, чтобы исходные файлы, содержащие текст программы, имели имена, заканчивающиеся на .c.
В простейшем случае откомпилировать программу можно, запуская компилятор командой
gcc имя_исходного_файла
Если программа была написана без ошибок, то компилятор создаст исполняемый файл с именем a.out. Изменить имя создаваемого исполняемого файла можно, задав его с помощью опции -o:
gcc имя_исходного_файла -o имя_исполняемого_файла
Компилятор gcc имеет несколько сотен возможных опций. Получить информацию о них вы можете в UNIX Manual.
"Узнайте у своего системного администратора", как называется компилятор с языка C для вашей операционной системы и какие опции он имеет. Обычно во всех версиях UNIX имеется компилятор с именем cc, поддерживающий опцию –о.
Запустить программу на исполнение можно, набрав имя исполняемого файла и нажав клавишу <Enter>.
Написание, компиляция и запуск программы c использованием системных вызовов getuid() и getgid()
Напишите, откомпилируйте и запустите программу, которая печатала бы идентификатор пользователя, запустившего программу, и идентификатор его группы.