Тут такая ситуация, товарищи!
Задание: написать программу, печатающую значения pid и ppid текущего процесса.
Написал:
#include <sys/types.h>
#include <unistd.h>
int main () {
int pid, ppid;
pid=getpid();
ppid=getppid();
printf("My ID - %d, Parent ID - %d\n", pid, ppid);
return 0;
};
Всё очень даже подробно!
Нужно ещё оформить тест в виде такой таблички:
|-------------------------------------------------|
| Input | Output |
|-------------------------------------------------|
| ./1.out | My ID-3929,Parent ID-3696 |
|-------------------------------------------------|
Пошёл сдавать. Запускаю прогу, она пишет, понятное дело, другие значения. Препод спрашивает, почему значения в тесте отличаются от того, что он видит. Я отвечаю, что в тот момент когда я писал тест ОС генирировала одни значения, сейчас на другой машине она генерирует другие. Он говорит, тогда тест плохой. Задание не принимаю.
Помогите, как избавиться от этого недочёта - либо тест, либо прогу модифицировать?
getpid() и getppid()
Модератор: Модераторы разделов
-
Nab
- Сообщения: 257
Re: getpid() и getppid()
Ужос
Пиши заяву на кафедру, в деканат или в ректорат о несоответствии препода занимаемой должности
Или кто-то из вас прикалуется, или он над Вами или Вы над нами
Или попытайся сам перевестись к нормальному преподу...
Пиши заяву на кафедру, в деканат или в ректорат о несоответствии препода занимаемой должности
Или кто-то из вас прикалуется, или он над Вами или Вы над нами
Или попытайся сам перевестись к нормальному преподу...
-
verbatium
- Сообщения: 5
Re: getpid() и getppid()
Я над вами не прикалываюсь. Всё реально.
Думаю, написать в проге вечный цикл перед ретурном, а вызывать асинхронно с ps. Тем саммым показать, что цифры точны. задача выполнена. Единственное, что прийдётся процесс убивать через килл -9
А в тестах вместо цифр написать xxxx
Думаю, написать в проге вечный цикл перед ретурном, а вызывать асинхронно с ps. Тем саммым показать, что цифры точны. задача выполнена. Единственное, что прийдётся процесс убивать через килл -9
А в тестах вместо цифр написать xxxx
-
Nab
- Сообщения: 257
Re: getpid() и getppid()
Вообщето тут задача ваших отношений, сможешь ли ты убедить препода что он не прав или нет.
Попроси его верно решить эту задачу, скажи что ты уверен в верности своего решения, и по другому это решить нельзя... Пускай покажет свое решение....
Ну или сделай так
А запускай так
Этим ты запустишь в фоне свою прогу, а через пять секунд она вывалиться.
И за это время ps успеет отработать...
Или можешь запустить на разных консолях
Попроси его верно решить эту задачу, скажи что ты уверен в верности своего решения, и по другому это решить нельзя... Пускай покажет свое решение....
Ну или сделай так
Код: Выделить всё
#include <sys/types.h>
#include <unistd.h>
int main () {
int pid, ppid;
pid=getpid();
ppid=getppid();
printf("Start MyProg\n");
printf("My ID - %d, Parent ID - %d\n", pid, ppid);
sleep 5;
printf("Stop MyProg\n");
return 0;
};А запускай так
Код: Выделить всё
myprog &; ps | grep myprogЭтим ты запустишь в фоне свою прогу, а через пять секунд она вывалиться.
И за это время ps успеет отработать...
Или можешь запустить на разных консолях
-
verbatium
- Сообщения: 5
Re: getpid() и getppid()
Пробовал! Думал прокатит!" Но gcc ругается на строчку со слипом:
error: syntax error before numeric constant!
Насколько я понимаю задать pid ручками невозможно, тем более ppid (те. pid оболочки). Поэтому он наверное хочет от меня подтверждения того, что цифры в тесте не наобум взятые. А это покажут равные значения ppid и pid, выведенные ps и прогой.
error: syntax error before numeric constant!
Насколько я понимаю задать pid ручками невозможно, тем более ppid (те. pid оболочки). Поэтому он наверное хочет от меня подтверждения того, что цифры в тесте не наобум взятые. А это покажут равные значения ppid и pid, выведенные ps и прогой.
-
Nab
- Сообщения: 257
-
verbatium
- Сообщения: 5
Re: getpid() и getppid()
Ну как я сам не догадался???
Стыдно! Спасибочки!
-
d_Sun
- Сообщения: 291
Re: getpid() и getppid()
verbatium писал(а): ↑17.11.2005 21:08Тут такая ситуация, товарищи!
Задание: написать программу, печатающую значения pid и ppid текущего процесса.
Написал:
#include <sys/types.h>
#include <unistd.h>
int main () {
int pid, ppid;
pid=getpid();
ppid=getppid();
printf("My ID - %d, Parent ID - %d\n", pid, ppid);
return 0;
};
Всё очень даже подробно!
Нужно ещё оформить тест в виде такой таблички:
|-------------------------------------------------|
| Input | Output |
|-------------------------------------------------|
| ./1.out | My ID-3929,Parent ID-3696 |
|-------------------------------------------------|
Пошёл сдавать. Запускаю прогу, она пишет, понятное дело, другие значения. Препод спрашивает, почему значения в тесте отличаются от того, что он видит. Я отвечаю, что в тот момент когда я писал тест ОС генирировала одни значения, сейчас на другой машине она генерирует другие. Он говорит, тогда тест плохой. Задание не принимаю.
Помогите, как избавиться от этого недочёта - либо тест, либо прогу модифицировать?
Могу посоветовать - убить препода!
Моя подпись сильно длинная :)
-
Nab
- Сообщения: 257
Re: getpid() и getppid()
Ну блин, злой ты
Хотя в чем-то прав
Нефиг таких к преподавательству допускать