From 769fac83c57f66ab3b3ca80718f769970168b590 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 29 Sep 2023 18:55:14 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20proceso4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proceso34 | Bin 0 -> 16216 bytes proceso34.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100755 proceso34 create mode 100644 proceso34.c diff --git a/proceso34 b/proceso34 new file mode 100755 index 0000000000000000000000000000000000000000..94729fca000d10b5ae61955e416b3e2962d3cbce GIT binary patch literal 16216 zcmeHOe{3AZ6`pel*brg|NC^g#RZ37&;)|U)X&U6lNqor}*@>GtMU>L*+PAhB?skv8 zyq zX1$zCTT%6&9qat&ee=FIZ{N<|&h5^8CDpODDv=Oe=7`S<(zFEsO2UFAM@W)*vz5UMWD84CCw1b@ zrK-}Sa#Y2^lG}s+G$NyD{{KKOS3H(s9_40#gS6k@5|Jt|hm>Rk z!jkhzIib&b6;D()5($N6lsBMwQQ0PGf+h7qW!D)m^WXH>rFb1nrJty5mat&S{e2ER z%FDl7_%!cS{mphB237u9s`QFgS*vGV^Qvs7A#2&i!G^*0>l)TICksw;wI2e-rQt(k zYTNeR0&d0#Q)v`c!%}B|)OML_C;RmeUU$2B(N*7br=R)GOHb{+`M9|MNwT51i98q*cII0IOtAaaO`pv*4q^HGHCF zJ%CDnT4%uz1K040mNft>`AN=#Cx9=FIw4)xdj}1@&$5lIb*Cx%O)qa{fMPuK>IKhm zJw0bww#XN~g6MPH+r%A)<@t7GXbwWjyO!P4w8Gb8OY4E=?;M()dVVoY0??tkK~l(AojX*F&-1 zs-aQ!d4>J>{s%COszeVNqwx0>e?M?i52^1V#>dqCp}N(l3C3A}d85Q>j8d+-OoZ_8 zxGsfoIj$vRDug5Opu88tdF)f;Lkg$c0AGuQ9|_@fopCuD!u|V$YIq`qt6PfSG8V%5 zn5p6U5PqTZLE>ZxzbJ&q)i?uj2I36F8Hh6wXCThN|0@IU)Gq#edgS%$^ntmrtP&!9 z&zM(LKA9f*S@pOdQhDvIfTzpLZiA>@BFKJ#TBaxeST2_j`8rMTrYBDYI!)}RCr<=A zO~j@re-!960h^wDIM8Y0H9dKMpwk3!dh%}8(R-)gdz z<-Y=lj%f+-H?W_La(BHU0}vduUH1UU&0Ni(eT<{=_}#;dKEqXA#Cy_ zOiIs^Fk!A>*&9 z+2sro#&+A=Q{6kXWto*)r={hMjB9FUL2Ch`(R-8+*{9oYnAN-nE-1PU#KsG?oMn$c zp7dYG+=O^#$3{=l%sO;@S)-t3oC0FE46o=yGiWh2VEKn*Eaq1Qg_QT zGHM|~%DQ%=^ie(QA!AZflmEGc!0mL#AJJ z8Lq)>X)RBHAIA8j2Ay=Af78aBPMr1r@h5G>?jIzA?{#uT+v-)mVT7}#PGlh|5?9W- zz7hS<nxzC2|BLvH z!H(a3GVY=B1n@iosw{$}INwKqE#2JV)5N9CHK%9X% z191l841By9P>UCNT^&t9snA@R$~-B8g?xA$<(IveN_mCSdHvp%O6N6d^-AY;e7vrj z+wsEBA(NwOw##eb>Qsf-eI;g z(toPj-&Z;xhjRb130~hFb=atWytFFWrR0~D%quypwrts;E#KW! zw7sI%)Rb&aHa0XBeYNSX)vJ?@%_|iAuRT&8&l7K#qgHgD5@@+kB~nucG>j|R(|N4I z>eVi_-c*?jP2s~4oYn!8Jzqy`-;PQ`)Qh@SiST)*Rn`gd3BlKeY!zZJD&&XPzcRkx zw_g~nlV$u7R4T*(3bY2SX4;OmX? zcTlOcPPz^W(by;?>9?>Z@a@tX0#RKFypo@mS@164b@0RaXKy!>eboZN-(!s5GK-(Q z@)M0`A8?JyA$cG01yxrF9^c&bEyC#t6zM$Ga0GZA#>t{qwv=)Y@JrC5sqyANlR(p> z%07Br$CQ1IN|OIf0rt=M_)OoV{dyMs&%i1EsQ0o`j(PQbJ(JufLykcKpvR9m2%dUGly_Z(A7hsuj^!}{V zV`TM==ePykC=LodO2UIC&&(tnD_hVSd`mZ6*BH|2Nz;(%bB&y-XNtMp5GWx{hov{e zR6Ueh(~O{Wee2Fmohd!Fy-mkL`nH?4Z|ZE{0vLNN^i*24rrUN3eOt$l&6_&(9b32V zN_Feqn>Kf(z=*E>Z{_9uAF+g=wg?2awDezYCYS-~W`-Wl`3I}^4a{uUsa{6J~1MOIt0q8n5B5<~7 zheE||2ej)ULJM!4nAt?<$KNb50~X1`P|h=YAU#*g0j^;Kh3V!+(#8|$WWQZZ;*8=U zt2Y#adWshI=U~%?wA!?}y@AG~Z$4lY21GJ5WTOiyJy*8i0c^o?>=}xVHrLD=L{PPS z))PrT?j)+oeg`U53TCfJdgdTh8lbRt{4q>YvSce#)|$ z4V8@c|N97kc&RjG$>WFJMEgI32CTXa_JHy4V%`TDwP&5>+u+uQ`273ePy;{|wv*a9 zo$(LQKx0?^%n9c0ysvkPl7m9m9~I{D`TqehGGRW?vsl<@q3o`Jz>s zHcH9;umk3?J`ZHVxPP91)+v6}p85)x1*(5#9yBrkx&V-EayX>|yBdu& n-{pAt` +#include +#include +#include +#include +void main(void) { + pid_t pid, Hijo_pid, pid2, Hijo2_pid,id_actual; + pid = fork(); // Soy el abuelo e intento crear a mi hijo + if (pid == -1) { // Hubo error + printf("Hubo un problema de impotencia al crear el hijo"); + exit(-1); + } + // Si todo va bien y se crea el hijo tenemos que hacer + // que el programa ejecute un código con distinto para cada + // proceso + if (pid == 0) { + // Nos encontramos en el hijo + pid2 = fork(); //soy el hijo y creo al nieto + switch(pid2) { + case -1: //error + printf("No se ha podido crear el proceso nieto en el hijo"); + exit(-1); + break; + case 0: // Estoy en el nieto + printf("\t\tSoy el proceso NIETO %d, Mi padre es = %d \n", + getpid(),getppid()); + break; + default: //proceso padre + Hijo2_pid=wait(NULL); //espero a que termine nieto, que es mi hijo. + printf("\t\tSoy el proceso HIJO %d, Mi padre es = %d \n", + getpid(),getppid()); + printf("\tMi hijo: %d terminó.\n", Hijo2_pid); + } + + } else { + // Nos encontramos en el abuelo + id_actual = wait(NULL); // Espero a que termine mi hijo, que a su vez espera que termine el nieto + printf("Yo soy el abuelo de las dos criaturas anteriores:\n\t"); + printf("Mi PID es %d, el de mi padre (Sistema Operativo) es %d.\n\t", getpid(),getppid()); + printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid); + printf("A mi nieto no lo puedo conocer, solo reconozco a mi generación inmediata\n"); + printf("Para conocer a mi NIETO debería implementar algún sitema de comunicación entre procesos.\n"); + } +exit(0); +} \ No newline at end of file