LINUX.ORG.RU

[fork()+getpid()] Мааа...ленький вопросик


0

0

Здрасьте.

Есть вопросик, возможно глупый, но на всякий случай спрошу.
Значит, есть задача форкнуть текущий процесс и получить PID
дочернего процесса. Есть такой код:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(int argc, char* argv[])
{
	pid_t pid = fork();
	if (pid == 0) {
		execl("/bin/sleep", "/bin/sleep", "10", 0);
	}
	else if (pid < 0)
		printf("Error in fork()");
	else {
		printf("Child pid is %d\n", getpid()+1);
	}

	return 0;
}

В данном случае всегда и на всех linux/unix системах getpid()+1
будет выдавать ID дочернего процесса?

Re: [fork()+getpid()] Мааа...ленький вопросик

Опять ты??? :))

man fork !!!!
Он возвращает 0 для дочернего процесса и пид дочернего для родильского!

lv ()

Re: [fork()+getpid()] Мааа...ленький вопросик

> В данном случае всегда и на всех linux/unix системах getpid()+1

всегда на всех системах pid будет выдавать ID дочернего процесса

phoenix ★★★★ ()

Re: [fork()+getpid()] Мааа...ленький вопросик

On success, the PID of the child process is returned  in  the  parent's thread  of execution, and a 0 is returned in the child's thread of execution.  On failure, a -1 will be returned in   the parent's context,  no child process will be created, and errno will be set appropriately.

Никакие плюсадины не нужны.

Demon37 ★★★★ ()

Re: [fork()+getpid()] Мааа...ленький вопросик

Всё всё... я понял )) Сэнкс Алл! Просто обычно по привычке слишком бегло читаю маны.....

anterior ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.