Вариант- 1 Выполнил студент Группы 021754: Юсупов Э. И проверил: Соболь А. М минск 2022
Download 1.41 Mb. Pdf ko'rish
|
2-работа.
Задание:
1. Изучить теоретическую часть лабораторной работы. 2. Написать программу, создающую два дочерних процесса с использованием двух вызовов fork(). Родительский и два дочерних процесса должны выводить на экран свой pid и pid родительского процесса и текущее время в формате: часы : минуты : секунды : миллисекунды. Используя вызов system(), выполнить команду ps -x в родительском процессе. Найти свои процессы в списке запущенных процессов. 3. Выполнить индивидуальные задание. 2 . Написать программу, создающую два дочерних процесса с использованием двух вызовов fork(). Родительский и два дочерних процесса должны выводить на экран свой pid и pid родительского процесса и текущее время в формате: часы : минуты : секунды : миллисекунды. Используя вызов system(), выполнить команду ps -x в родительском процессе. Найти свои процессы в списке запущенных процессов. #include #include #include #include #include int main() { int status; pid_t дочерной1, дочерной2; if (дочерной1 = fork() == 0) { printf("Дочерной %d\n", getpid()); printf("Родитель: %d\n", getpid()); } else { if (дочерной2 = fork() == 0) { printf("Дочерной: %d\n", getpid()); printf("Родитель: %d\n", getpid()); } else { waitpid(дочерной1, &status, 0); printf("Процесс (1) успешно завершен: %s\n", (WIFEXITED(status) ? "истина" : "ложь")); printf("статус дочерного= %i\n", WEXITSTATUS(status)); waitpid(дочерной2, &status, 0); printf("Процесс (1) успешно завершен:: %s\n", (WIFEXITED(status) ? "истина" : "ложь")); printf("статус дочерного= %i\n", WEXITSTATUS(status)); system("ps -x"); printf("Основной процесс: %d\n", getpid()); } } struct timeb sys_time; struct tm *loctime; ftime(&sys_time); loctime = localtime(&sys_time.time); printf("%d:%d:%d:%d\n", loctime->tm ); return 0; } |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling