Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* fork
- output
- <id processo pai>: Ola2
- <id processo filho>: Ola2
- <id processo filho>: Ola3
- <id processo pai>: 2, Ola2 */
- // Apple Xcode
- // paulogp
- #include <stdio.h>
- #include <unistd.h> // fork
- #include <stdlib.h> // wait
- int main (int argc, const char * argv[])
- {
- pid_t the_pid;
- char *the_ptr;
- char the_text[100] = "Ola1\n";
- the_ptr = &(the_text[3]); // aponta para a posicao do 1 na palavra Ola1
- // criacao de fork
- the_pid = fork();
- the_text[3] = '2'; // Ola1 -> Ola2
- // ambos (pai e filho) fazem o seguinte output:
- // <id processo pai>: Ola2
- // <id processo filho>: Ola2
- printf("%d: %s\n", getpid(), the_text);
- if (the_pid == 0) // filho
- {
- // o processo filho nao afecta o pai
- // <id processo filho>: Ola3
- *the_ptr = '3'; // Ola2 -> Ola3
- printf("%d: %s\n", getpid(), the_text);
- exit(0);
- }
- wait(NULL);
- // <id processo pai>: 2, Ola2
- printf("%d: %c, %s\n", getpid(), *the_ptr, the_text);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement