From 243fd9a2d93187416d579b2807d70aa311425518 Mon Sep 17 00:00:00 2001 From: juanjo Date: Fri, 29 Sep 2023 14:57:24 +0200 Subject: [PATCH] =?UTF-8?q?Subir=20c=C3=B3digo=20de=20procesos,=20errores?= =?UTF-8?q?=20en=20proceso34?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proceso32 | Bin 0 -> 16160 bytes proceso32.c | 23 +++++++++++++++++++++++ proceso33 | Bin 0 -> 16208 bytes proceso33.c | 26 ++++++++++++++++++++++++++ proceso34.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100755 proceso32 create mode 100644 proceso32.c create mode 100755 proceso33 create mode 100644 proceso33.c create mode 100644 proceso34.c diff --git a/proceso32 b/proceso32 new file mode 100755 index 0000000000000000000000000000000000000000..e98e406ad30b3fa5f154b215a9ff5187afc013be GIT binary patch literal 16160 zcmeHOYit}>6~5~^?}43#t_bg+Ek6`BDDR079xt#Y><%q=ZnR%Bh4D5L6awg)Pz$)Pe%2S-x}Uob~K< z4H8HQ!5qtT?)lF7?!9y7&g`Atdrx=uc2`9rN@SjTP?2@M)9yIals8B(Fz=M@&=^<(2%_X;~LlDu5&x3gL$-#C| zAK`wA7JsQdgUAp=A4__g0wALOJnG71lXk1g-Q{|i+sm>R9+||OV%`+A84U)rexru+Jy@SkKvDT|6s5g1A5-sgL1Rh^n zj`+t)F7qL7Z?5am%=s71X;qt(PJipR&B;Vl(n%LannrfCHnnbx<}=YPx?$=UwLxQQ z@BSmI>WrEoO!!n@fqzOX`8N-qyK(BfAAV%{$zvNo@yp+hKbG9{w$wo!iXowR84_eu zc_IEO#ykJdq2yttui3AqNY5qpa4f6f8~|oiz?TE76u)Z@{4{U_|3SGIK&5)r(5UET?4>V#87Zk!N9kN4 z@?4SoIlI)uuk&+5@MgxFW1hc+vpuoL!ztf%jYO{caR0cR^x^us%7p7aT-qSlln1LkO_NQSFo`=k+jRW)ouoG0iI3lkU%I&`e(CnSc;rg_+8uWVD){{`&GBWSzSKJjNx!FdFn z!^nQ!^vs=NalGrs*i$!(g*7;l6HBPVpMH;OmSH80ft+pS3_EEIJCA16;mjzN5k6q&Ga6e+zpohk9OGb5r(x%f z^@&Y}4oW#j*2-D{7OICcMxLowB4<-GNegv5mRrbKJ9Qn@pYm$Z5(0HSL~6A93wAOS zAaC#*jp{nUr+ylFhft7D+PQ?4@W7Nq+ak;f0I$VhEu^`ZsU=OYVh38%FS&4^z|0W6i{ zm3jbvia&p|SUgU#OKQ89)P20>-c!|Q)SmiX8@E27t06wMe-&~5-`DDZ9mD_E(cUDq zYFkqKg{qFlcXy5Xe^w(;C}9S|41^g7GZ1DV%s`ldFau!*!VLV6WI)#c$$CFo%h%55 zw@A*D7Z@&PyO$SPu3}r(6|QDm-Zf}FDT%Bvq<0n)@&D;gF+=uq{MI3B11ITa3Lsa-t0O z(t6}d@oRursTwsA=pXS2zZJl@GA{Q8Of5Y)MpV7p5%X-hjv08t9)(K%pX{rueE_CC?whd*`Uf z1iAIGF*4r7o)$7f$IXt z%lHx2MUEfkb=Q;Z_?E^cYF1yG1AiSj^*>nu8^DcOdZ~09xb&?AqOcqf%4Jn}`Umcd zRfPKkrF?iG=e9&MSkZ3vJEm(5DFAu5FgO?;P_wJwO*dr@(E9g0A`=;ND4FTEl4ioq zlSp%G`kPA?dvkT_IH|Cdf)l*{dJZ5e;iSz%-o_>dJ54(o`ty0_>WvJ%)1j;d+6Pevm?m~ANOEWkL&bdw<$EH^ zE1>M_trcakisnaCuGJ6i<~%(tC2Xj$b6FKl<9p=jP`VJs^~%~gchm><7aZ)e!3GU4 zs;#}JiAI|aAGY$tDw-HgqX|#DInRTybMsCnU1pf@Nu< zG$j$f%wt7ggwHR*{GWi6=7_?Vd7fpRK* znfI172TJ?F^M984?HnibXwfq7CO+jX$p0!Z%8Arp`uyR~A(@{eL`(4cUjXXo8_W}Z z+@qC_^6@76`2hb6J48!=r2?@C3yZngp-<( z>!%EkX1zSnzVw@;)GH|X`7$3Ay-5OD2it!=z>lr<0!3d8@PqCD8h$Jq)%OsE%6p~k z#|*}cEqWT98XsTgBw~wx7Z{B_dH<4ma%q1p=a23m65+{p{3b985x(q` zo7hazN;P__bQHem_u%pKW!^o_{8)+U6@(}HZjk+anfEp}d-2jwsYZBWF9Mk`>A%b) zcQ8K~Pi^^SDYwtzC719UN{CkwzF(Kdt}pf|S2)2P`yhNY50(DN^Ox=q>AR1v>b7~- Z#z5uLuEf&xyAr>hKG-1j0Ybo3e+Py4v;+VE literal 0 HcmV?d00001 diff --git a/proceso32.c b/proceso32.c new file mode 100644 index 0000000..1c60224 --- /dev/null +++ b/proceso32.c @@ -0,0 +1,23 @@ +#include +#include +#include +void main(void) { + __pid_t id_actual, id_padre, pid; + pid = fork(); + 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 + printf ("Soy el proceso hijo\n\t"); + printf(" Mi PID es %d, y el mi papa %d\n",getpid(),getppid()); + } else { // Nos encontramos en el padre + printf("Yo soy el padre de la criatura:\n\t"); + printf("Mi PID es %d, el de mi padre (abuelo de la criatura) es %d.\n\t", + getpid(),getppid()); + printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid); + } + exit(0); +} \ No newline at end of file diff --git a/proceso33 b/proceso33 new file mode 100755 index 0000000000000000000000000000000000000000..7779d05ff9cefa09a5a4eee93d5b18a098ec1ba5 GIT binary patch literal 16208 zcmeHOYitzP6~1diFa)r9wLBU;P>>+Oi_NP%L|O2Ibz~mlkrJt4I_n+V)9x#~v%#im zOGO*SB}lF+C4cxq^CwX&B-BQIsZvZyX&SW=Y7UMq zYPot4@&leu+Y=gK)#Z9aEjF@#8jyI4sZs|&rPWGMdPqpTsY=@nZ4p#_9>kkYCYHna zH1|_b?0$O&kx>lq=wpQ(Py~ZK%FWeQ&#bQQti=MiH^eAB5{Wm?ym99F$nA|YN1CzU{}Barxns{i*T0D{pT&_Qarfy(k88$cGB~%a9JQiJVH>gn5|Ul|TUvOVOusy|=+k{YnxLcvL^6BaZipl+JD-hF1twTiBpwVWI@ zeM6Sn@8qnEbJA9YqLXv`6?xGh*rN9K_U!2}H^eu@H~aOCo0QpeWS^O~i}rw1a_!=g zeI1#6&OTzLGB!dEWb-+0#MG{J9nsweT=8l63m$1~#9-MAl<{3&>dd53^Em5X`}T`S zO@n$0G8OsUk^BABJgvXZpDUtIuzqVo+eI((*eZ!za(^xKGyjo%2PB3^mMODX-?=G`Rn^d%Zmeg{)+GnMnI25`ejW(Kg-uf zl_&#I2BHi^8Hh3vWgyDH|9%FNr*AeU&rJX2dZm)z9CI70SCgmTXuRy7SatJTFjZIo z2FIqB1ZpG?l6_*lin96_B-4~|;;JYAjAWV$PKVy7xQwu$X z=>EaxAVBi$^c2CiJMJQ!-n($5)0XCyn$ft{p854{2heK zTAWrTjl-4czl9uo3T^xC6My0aj7PyajH|J@GI76J9qGDx`YSi9<>fdLYc2)+)laC~ zl^0-q9q!f2%c#LemAAtu8}u23rBb3Omn*#lzaP00j?)SKpO3%p#U%fct_oa^2g9s@ zy0VUJmn+i=beL4o=ia?)^-R}IFaAi-a03P%{Vr-a0UBpDBa51jN|b>p15pN|3`7}- zG7x1T%0QHXC<9Rjq6~ao8KCz`RFdUX-YDmcLNSk5RawhO+lG@Zj?(W-$Hw7t`!UawBa@v1G^1=|G+P@CJ;QKRrZ~J-t{}k>05vX?0ZGNtyW6pzJr-QG}$P$$( z15pN|3`7}-G7x1T%0QHXC<9Rj{!cO>>-%IqpRCoRHG@=UYw#Bk&S80w7gH`_S=J3M zV_BXxma;7C2kDuGir7EAU(J(zo}W5o?O%l+rch)}-kWTfwRIP?*<0&MReGMGvPgq} zl!uuLuNTx$uXt`^4|%?lHGZFD{dsO!^yAzy>Gv4>$r?au|DRQTJ}`T(cn|8G-$mx* zO{^zNp7B`d$uF|~A1q71xtWh0Wc_%!;Vrz7w43n>#(u_U7@uPlzN`z~+tIPzSkq~z z94lwE({k9h*7i+nxhmfOj+Czl)Zg%CxVBLKW3W8S2{YJC>wxR|FNeNCHL0ti{t=J# zir2M5^vXsYNiX*Yt5pvwF||}B5?UkIlU8NNFbZY7Yb$;aK!xJS{U-Y7J^zLNx?9n| zf=a#qPjy~D^x`Z~H&#f5Nvs#=lIQ;k6~4}Id9?XT*4axG`i&rlyG-sQ(cea;-n!~$ zB*YM>09u}YiE2v(l&G$QzFwSN&^N0kex8NZP5uqdNpcd(H|-cO?X=}u$~!mSTTp8^$*#8wpyAqm17^CEHwUd;n)Vd*9DrBa z$(iMnjeQJujy5x-N+srcdl`7gLrn{`AEHKKn%Jx$$)Q~gb+;zarilIdNpxFK3G$CIUyy$14i@>m6&-yK z2l+A&5H!S*G0guQ^nb^kOZqSKP(f*5=Aq&KTj10F6XDA|RnVa1qEH{HDtwtQI?&N6 z3t#5Ff-=vAi&r?Di0Wz7Xih17nMVprJJNsg6Z|UpG)EO#=Ba{h+)}vz(t)$6P)>y} z^JKv>c9izR=l>G(_pqPLy9GxBd^(pf|GUspP9(nneZ=2OGN0!#USFk7cn<$TzQH`f zLeLp?Hv9NWh(F2>g3@0JBeLMd5dS>$1+RoIxU?_veiY)%d`OVy$H5XF|38P3nvm3>3e{#wr +#include +#include +#include +#include +void main(void) { + __pid_t id_actual, id_padre, pid; + pid = fork(); + 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 + printf ("Soy el proceso hijo\n\t"); + printf(" Mi PID es %d, y el mi papa %d\n",getpid(),getppid()); + } else { // Nos encontramos en el padre + id_actual = wait(NULL); + printf("Yo soy el padre de la criatura:\n\t"); + printf("Mi PID es %d, el de mi padre (abuelo de la criatura) es %d.\n\t", + getpid(),getppid()); + printf("Mi hijo si es de verdad hijo mio deberia tener el PID %d.\n",pid); + } + exit(0); +} \ No newline at end of file diff --git a/proceso34.c b/proceso34.c new file mode 100644 index 0000000..c3e5dfb --- /dev/null +++ b/proceso34.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +void main(void) { + __pid_t pid, Hijo_pid, pid2, Hijo2_pid; + 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