fork download
  1. #include <sys/types.h>
  2. #include <sys/wait.h>
  3. #include <unistd.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int main(int argc, char *argv[]) {
  8. pid_t pid1, pid2;
  9. int status1, status2;
  10.  
  11. if ((pid1 = fork()) == 0) {
  12. // First child
  13. printf("Soy el primer hijo (%d, hijo de %d)\n", getpid(), getppid());
  14. printf("Ejecutando un ls con execl...\n");
  15. execl("/bin/ls", "ls", "-l", NULL);
  16. perror("execl failed"); // Add error handling if execl fails
  17. exit(1);
  18. } else {
  19. // Parent
  20. if ((pid2 = fork()) == 0) {
  21. // Second child
  22. printf("Soy el segundo hijo (%d, hijo de %d)\n", getpid(), getppid());
  23. printf("Ejecutando un ps con execv...\n");
  24. char *args[] = {"ps", "-A", NULL};
  25. execv("/bin/ps", args);
  26. perror("execv failed"); // Add error handling if execv fails
  27. exit(1);
  28. } else {
  29. // Parent
  30. // Wait for the first child
  31. waitpid(pid1, &status1, 0);
  32. // Wait for the second child
  33. waitpid(pid2, &status2, 0);
  34. printf("Soy el padre (%d, hijo de %d)\n", getpid(), getppid());
  35. }
  36. }
  37. return 0;
  38. }
  39.  
  40.  
Success #stdin #stdout 0.02s 5280KB
stdin
Standard input is empty
stdout
total 16
-rwxr-xr-x 1 root root 14312 Sep 25 21:05 prog
    PID TTY          TIME CMD
      1 ?        02:25:16 systemd
      2 ?        00:00:08 kthreadd
      3 ?        00:00:00 rcu_gp
      4 ?        00:00:00 rcu_par_gp
      5 ?        00:00:00 slub_flushwq
      6 ?        00:00:00 netns
      8 ?        00:00:00 kworker/0:0H-events_highpri
     10 ?        00:00:00 mm_percpu_wq
     11 ?        00:00:00 rcu_tasks_kthread
     12 ?        00:00:00 rcu_tasks_rude_kthread
     13 ?        00:00:00 rcu_tasks_trace_kthread
     14 ?        00:04:10 ksoftirqd/0
     15 ?        02:27:55 rcu_preempt
     16 ?        00:00:15 migration/0
     18 ?        00:00:00 cpuhp/0
     19 ?        00:00:00 cpuhp/1
     20 ?        00:00:16 migration/1
     21 ?        00:02:55 ksoftirqd/1
     23 ?        00:00:00 kworker/1:0H-events_highpri
     24 ?        00:00:00 cpuhp/2
     25 ?        00:00:19 migration/2
     26 ?        00:29:05 ksoftirqd/2
     28 ?        00:00:00 kworker/2:0H-events_highpri
     29 ?        00:00:00 cpuhp/3
     30 ?        00:00:15 migration/3
     31 ?        00:02:12 ksoftirqd/3
     33 ?        00:00:00 kworker/3:0H-events_highpri
     34 ?        00:00:00 cpuhp/4
     35 ?        00:00:14 migration/4
     36 ?        00:02:01 ksoftirqd/4
     38 ?        00:00:00 kworker/4:0H-events_highpri
     39 ?        00:00:00 cpuhp/5
     40 ?        00:00:15 migration/5
     41 ?        00:03:26 ksoftirqd/5
     43 ?        00:00:00 kworker/5:0H-events_highpri
     44 ?        00:00:00 cpuhp/6
     45 ?        00:00:14 migration/6
     46 ?        00:02:07 ksoftirqd/6
     48 ?        00:00:00 kworker/6:0H-events_highpri
     49 ?        00:00:00 cpuhp/7
     50 ?        00:00:14 migration/7
     51 ?        00:02:13 ksoftirqd/7
     53 ?        00:00:00 kworker/7:0H-events_highpri
     62 ?        00:00:00 kdevtmpfs
     63 ?        00:00:00 inet_frag_wq
     64 ?        00:00:00 kauditd
     66 ?        00:00:02 khungtaskd
     67 ?        00:00:00 oom_reaper
     68 ?        00:00:00 writeback
     69 ?        00:05:55 kcompactd0
     70 ?        00:00:00 ksmd
     71 ?        00:00:54 khugepaged
     72 ?        00:00:00 kintegrityd
     73 ?        00:00:00 kblockd
     74 ?        00:00:00 blkcg_punt_bio
     75 ?        00:00:00 tpm_dev_wq
     76 ?        00:00:00 edac-poller
     77 ?        00:00:00 devfreq_wq
     78 ?        00:01:02 kworker/0:1H-kblockd
     80 ?        00:02:01 kswapd0
     87 ?        00:00:00 kthrotld
     89 ?        00:00:00 acpi_thermal_pm
     90 ?        00:00:00 mld
     91 ?        00:00:00 ipv6_addrconf
     96 ?        00:00:00 kstrp
    105 ?        00:00:00 zswap-shrink
    106 ?        00:00:00 kworker/u17:0
    159 ?        00:01:25 kworker/4:1H-kblockd
    160 ?        00:00:46 kworker/1:1H-kblockd
    161 ?        00:12:43 kworker/3:1H-kblockd
    162 ?        00:01:09 kworker/5:1H-kblockd
    163 ?        00:06:24 kworker/2:1H-kblockd
    164 ?        00:01:16 kworker/6:1H-kblockd
    167 ?        00:01:07 kworker/7:1H-kblockd
    188 ?        00:00:00 ata_sff
    189 ?        00:00:00 scsi_eh_0
    190 ?        00:00:00 scsi_tmf_0
    191 ?        00:00:00 scsi_eh_1
    192 ?        00:00:00 scsi_tmf_1
    194 ?        00:00:00 scsi_eh_2
    195 ?        00:00:00 scsi_tmf_2
    196 ?        00:00:00 scsi_eh_3
    197 ?        00:00:00 scsi_tmf_3
    198 ?        00:00:00 scsi_eh_4
    199 ?        00:00:00 scsi_tmf_4
    200 ?        00:00:00 scsi_eh_5
    201 ?        00:00:00 scsi_tmf_5
    217 ?        00:00:00 md
    220 ?        01:05:21 md0_raid1
    225 ?        00:00:00 kdmflush/253:0
    226 ?        00:00:00 kdmflush/253:1
    245 ?        00:00:00 raid5wq
    279 ?        00:07:04 jbd2/dm-0-8
    280 ?        00:00:00 ext4-rsv-conver
    336 ?        00:39:09 systemd-journal
    373 ?        00:00:07 systemd-udevd
    461 ?        00:00:00 ipmi-msghandler
    468 ?        00:00:00 watchdogd
    469 ?        00:00:45 mdadm
    488 ?        00:00:00 cryptd
    515 ?        00:00:00 kipmi0
    673 ?        00:00:17 rpcbind
    674 ?        00:00:21 systemd-timesyn
    676 ?        00:00:00 rpciod
    677 ?        00:00:00 xprtiod
    680 ?        00:00:00 acpid
    682 ?        00:00:10 cron
    683 ?        00:00:00 svscanboot
    684 ?        00:40:41 dbus-daemon
    687 ?        00:03:31 irqbalance
    689 ?        00:07:51 rsyslogd
    698 ?        00:00:04 smartd
    702 ?        00:14:51 systemd-logind
    706 ?        00:00:00 atd
    708 ?        00:00:00 agetty
    709 ?        00:00:00 agetty
    751 ?        00:02:48 svscan
    752 ?        00:00:00 readproctitle
    881 ?        00:00:00 supervise
    882 ?        00:00:00 supervise
    883 ?        00:00:00 supervise
    884 ?        00:00:00 supervise
    885 ?        00:00:00 supervise
    886 ?        00:00:00 supervise
    887 ?        00:00:00 supervise
    888 ?        00:00:00 supervise
    889 ?        00:00:00 supervise
    890 ?        00:00:00 supervise
    891 ?        00:00:00 supervise
    893 ?        00:00:00 supervise
    894 ?        00:00:00 supervise
    896 ?        00:00:00 supervise
    897 ?        00:00:00 supervise
    899 ?        00:00:00 supervise
    901 ?        00:00:00 supervise
    902 ?        00:00:00 supervise
    904 ?        00:00:00 supervise
    906 ?        00:00:00 supervise
    909 ?        00:00:00 supervise
    910 ?        00:00:00 supervise
    911 ?        00:00:00 supervise
    912 ?        00:00:00 supervise
    913 ?        00:00:00 supervise
    914 ?        00:00:00 supervise
    915 ?        00:00:00 supervise
    916 ?        00:00:00 supervise
    917 ?        00:00:00 supervise
    918 ?        00:00:00 supervise
    919 ?        00:00:00 supervise
    920 ?        00:00:00 supervise
    991 ?        00:00:00 sudo
    992 ?        00:00:00 run
    993 ?        00:00:00 run
    994 ?        00:00:00 run
    995 ?        00:00:00 sudo
    996 ?        00:00:00 sudo
    997 ?        00:00:00 run
    998 ?        00:00:00 sudo
    999 ?        00:00:00 run
   1000 ?        00:00:00 run
   1001 ?        00:00:00 run
   1002 ?        00:00:00 run
   1003 ?        00:00:00 sudo
   1004 ?        00:00:00 run
   1005 ?        00:00:00 sudo
   1006 ?        00:00:00 run
   1007 ?        00:00:00 run
   1008 ?        00:00:00 sudo
   1009 ?        00:00:00 run
   1010 ?        00:00:00 run
   1011 ?        00:00:00 run
   1012 ?        00:00:00 run
   1106 ?        00:00:00 run
   1107 ?        00:00:00 sudo
   1135 ?        00:07:53 sshd
   1152 ?        00:06:43 multilog
   1153 ?        00:00:00 multilog
   1154 ?        00:05:04 multilog
   1155 ?        00:00:00 multilog
   1156 ?        00:00:00 multilog
   1157 ?        00:00:00 multilog
   1158 ?        00:05:03 multilog
   1159 ?        00:06:12 multilog
   1160 ?        00:06:34 multilog
   1161 ?        00:00:00 multilog
   1162 ?        00:05:04 multilog
   1163 ?        00:00:00 multilog
   1164 ?        00:00:00 multilog
   1165 ?        00:00:00 multilog
   1166 ?        00:06:32 multilog
   1167 ?        00:00:00 multilog
   1175 ?        00:20:31 exim4
   1177 ?        00:13:25 python3
   1178 ?        41-11:44:48 python3
   1179 ?        42-12:57:44 python3
   1180 ?        42-11:38:33 python3
   1181 ?        41-10:11:33 python3
   1182 ?        42-13:18:35 python3
   1183 ?        41-11:45:54 python3
   1184 ?        38-12:59:31 python3
3811753 ?        00:00:01 kworker/u16:3+netns
3823928 ?        00:00:00 kworker/u16:0-events_unbound
3825038 ?        00:00:00 kworker/7:2-events
3827287 ?        00:00:00 kworker/6:3-events
3828979 ?        00:00:00 kworker/5:2-events
3830891 ?        00:00:00 kworker/0:1-cgroup_destroy
3831457 ?        00:00:00 kworker/1:1-cgroup_destroy
3834677 ?        00:00:00 kworker/7:3-cgroup_destroy
3835569 ?        00:00:00 kworker/1:3-cgroup_pidlist_destroy
3835593 ?        00:00:00 kworker/3:1-cgroup_pidlist_destroy
3835835 ?        00:00:00 kworker/2:3-cgroup_pidlist_destroy
3835861 ?        00:00:00 kworker/4:0-cgroup_destroy
3836165 ?        00:00:00 kworker/6:4-inet_frag_wq
3836555 ?        00:00:00 kworker/5:1-events
3837261 ?        00:00:00 kworker/1:0-events
3837401 ?        00:00:00 kworker/2:2-cgroup_pidlist_destroy
3837414 ?        00:00:00 kworker/0:2-cgroup_pidlist_destroy
3837434 ?        00:00:00 kworker/4:1-events
3837619 ?        00:00:00 kworker/3:2-events
3837692 ?        00:00:00 kworker/6:1-events
3837712 ?        00:00:00 kworker/7:0-cgroup_destroy
3838359 ?        00:00:00 kworker/5:0-events
3838368 ?        00:00:00 kworker/2:1+events
3838432 ?        00:00:00 kworker/4:2-cgroup_pidlist_destroy
3838466 ?        00:00:00 kworker/u16:2-events_unbound
3838741 ?        00:00:00 kworker/3:0-events
3838779 ?        00:00:00 kworker/0:0-mm_percpu_wq
3838841 ?        00:00:00 kworker/6:0-cgroup_pidlist_destroy
3838861 ?        00:00:00 kworker/7:1-cgroup_destroy
3838927 ?        00:00:00 kworker/3:3-events
3839519 ?        00:00:00 kworker/0:3-inet_frag_wq
3839635 ?        00:00:00 kworker/4:3-events
3839657 ?        00:00:00 kworker/2:0-rcu_gp
3839694 ?        00:00:00 kworker/5:3-cgroup_destroy
3839729 ?        00:00:00 kworker/1:2
3839850 ?        00:00:00 kworker/u16:1
3839879 ?        00:00:00 bash
3839880 ?        00:00:00 secrun
3839881 ?        00:00:00 prog
3839886 ?        00:00:00 ps
3839892 ?        00:00:00 bash
3839893 ?        00:00:00 secrun
3839894 ?        00:00:00 java
Soy el padre (3839881, hijo de 3839880)