Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

fork()-kutsun jälkeen ei voi olla varma siitä kumpi prosessi (äiti vai lapsi) jatkaa aiemmin suoritustaan. Jos järjestys tärkeää, on ohjelmoitava itse synkronointi
Esim 1.

Code Block
#include < sys/types.h >
#include < unistd.h >

int glob = 6;
char buf[] = "teksti stdout virtaan\n";

int main(void)
{
int var; /* automatic variable on the stack */=88;
pid_t pid;


var = 88;
if (write(STDOUT_FILENO, buf, sizeof(buf)-1) != sizeof(buf)-1)
perror("write errorkirjoitusvirhe");
printf("beforeennen fork-funktiota\n"); /* we don't flush stdout */


if ( (pid = fork()) < 0)
perror("fork errorvirhe");
else if (pid == 0)
{ /* childlapsiprosessi */ glob++; /* modifymodifioidaan variablesmuutujia */ var++; }
else
sleep(2); /* parentvanhempi */


printf("pid=%d,glob=%d,var=%d\n",getpid(), glob, var);
exit(0);
}


...