From 6de2de03318ab3477b7e1197475568a85c0140f5 Mon Sep 17 00:00:00 2001 From: clint Date: Mon, 14 Jul 2025 01:38:46 +0800 Subject: [PATCH] =?UTF-8?q?Linux=E7=B3=BB=E7=BB=9F=E7=BC=96=E7=A8=8B=20?= =?UTF-8?q?=E8=BF=9B=E5=BA=A6%60?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Linux系统编程篇/02目录IO/mkdir | Bin 0 -> 16048 bytes Linux系统编程篇/02目录IO/mkdir.c | 22 ++++++++++++ Linux系统编程篇/02目录IO/openAndCloseDir | Bin 0 -> 16104 bytes Linux系统编程篇/02目录IO/openAndCloseDir.c | 25 ++++++++++++++ Linux系统编程篇/02目录IO/readdir | Bin 0 -> 16136 bytes Linux系统编程篇/02目录IO/readdir.c | 32 ++++++++++++++++++ Linux系统编程篇/02目录IO/test/a.test | 0 .../03库的制作与使用/动态库制作/a.out | Bin 0 -> 15952 bytes .../03库的制作与使用/动态库制作/libmylib.so | Bin 0 -> 15568 bytes .../03库的制作与使用/动态库制作/mylib.c | 6 ++++ .../03库的制作与使用/动态库制作/mylib.o | Bin 0 -> 1496 bytes .../03库的制作与使用/动态库制作/test.c | 7 ++++ .../03库的制作与使用/静态库制作/a.out | Bin 0 -> 16024 bytes .../03库的制作与使用/静态库制作/libmylib.a | Bin 0 -> 1638 bytes .../03库的制作与使用/静态库制作/mylib.c | 6 ++++ .../03库的制作与使用/静态库制作/mylib.o | Bin 0 -> 1496 bytes .../03库的制作与使用/静态库制作/test.c | 7 ++++ Linux系统编程篇/04进程基础/a.out | Bin 0 -> 16136 bytes Linux系统编程篇/04进程基础/getpid.c | 23 +++++++++++++ 19 files changed, 128 insertions(+) create mode 100755 Linux系统编程篇/02目录IO/mkdir create mode 100644 Linux系统编程篇/02目录IO/mkdir.c create mode 100755 Linux系统编程篇/02目录IO/openAndCloseDir create mode 100644 Linux系统编程篇/02目录IO/openAndCloseDir.c create mode 100755 Linux系统编程篇/02目录IO/readdir create mode 100644 Linux系统编程篇/02目录IO/readdir.c create mode 100644 Linux系统编程篇/02目录IO/test/a.test create mode 100755 Linux系统编程篇/03库的制作与使用/动态库制作/a.out create mode 100755 Linux系统编程篇/03库的制作与使用/动态库制作/libmylib.so create mode 100644 Linux系统编程篇/03库的制作与使用/动态库制作/mylib.c create mode 100644 Linux系统编程篇/03库的制作与使用/动态库制作/mylib.o create mode 100644 Linux系统编程篇/03库的制作与使用/动态库制作/test.c create mode 100755 Linux系统编程篇/03库的制作与使用/静态库制作/a.out create mode 100644 Linux系统编程篇/03库的制作与使用/静态库制作/libmylib.a create mode 100644 Linux系统编程篇/03库的制作与使用/静态库制作/mylib.c create mode 100644 Linux系统编程篇/03库的制作与使用/静态库制作/mylib.o create mode 100644 Linux系统编程篇/03库的制作与使用/静态库制作/test.c create mode 100755 Linux系统编程篇/04进程基础/a.out create mode 100644 Linux系统编程篇/04进程基础/getpid.c diff --git a/Linux系统编程篇/02目录IO/mkdir b/Linux系统编程篇/02目录IO/mkdir new file mode 100755 index 0000000000000000000000000000000000000000..579ed1cb5b90209a3fbdb282d04b39e583e4b39e GIT binary patch literal 16048 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 L9kDzl2$||%yF5cF literal 0 HcmV?d00001 diff --git a/Linux系统编程篇/02目录IO/mkdir.c b/Linux系统编程篇/02目录IO/mkdir.c new file mode 100644 index 0000000..fd32af4 --- /dev/null +++ b/Linux系统编程篇/02目录IO/mkdir.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + int ret; + if(argc !=2 ) + { + printf("uage:%s 6~4R9!)cS)Nt4t`+GJW9)Dn4OJ5ESL-K=9f8Ar~8#1X0l9k0D(d&EA> z?kusZx}x0z&FWDQSZQN`8O>6;db-vLS$z0&+lP`OeHa zoAG3~l`4ezG1r>??s!;qiF7D3GX8Z6hS|ax-wPon$=Xxd>rETh8cxNBJoZ$?=Lfl)dxx0!nC6C2L2UNaN>JMSBzSyj z+2j2|F7sh-uhMns;rt77dexSs-MhVcOEOWPwA1$f-Sxs2ZAHcb7}aL}0A zd*G--m;&iIjVgNFlO-P6Rtc**)jim+0l_$$j8d!WXh9|92o8#MM={O5;kemvr{hWcDNC6qE?}RTbK+UYOvUZA>Pu#FR>IDzp}dn* znIS9f3Ryet^eb|vi@ROz?dsg!W;W?f`nFPiYqK&tyZ4(3D{BqdImgO&?{7`@xr9#^sJGZ&cuW zg})c%KAu|P#W@ww_prV?=GnzxAm|w7$Jrk2s037Ak09RfiMGM2Eq)K%fNdz z8~$mGU8^=G7XEsRQpOhxPPBN@7<;4ooaH5;FUh!dP_SqrW)xo{=HqjSz`ocgceM5n%_ zc%^3Jaq>II2>%%}PHuaL;E`L#_^fgEFT0Ghb5%y3GW0`t79k_+9dXOtW)Z z=Cgjudyhuv5m{gL33?Am?_=KmYq6LBHqRD|CxPw2Zv&qLb^%k@i^ZP+=^ZGQ$Ww<^ zWVkl6e(B=sm+<=m>FHg61N=Wq4(*HGS78sKO7DV)5&sbBm)GuDUbnC2?qk)*)vk3r zKeqKD_jMrgKaFDwe)0~D+)3}?_!{&vpcHD0`uQ5#`wA&Lme)QXZCkb|I)NUMA}nDB z!VH8N2s037Ak09RfiMGM2Eq)48Tj93K-TriIzCyW$IIT-Qt1vq^x!3(TVlL8b1loV zUT{6j@`$sJWmz{!&qY+k{`XtO49TZ?k)Eu*dust{WeqCUTeJNxPpw{IyqmF(aW$g= z)6^87kgPTAVF!ACqate!@AX7A%!~a*e}+3I{VuSdtT~kSH?Us({#EqO4|#P}c)97G z?+Y9cZ%A@kR49(zf1-cE z^H_j?m_kcvWjpgFJ>H6QRg5%+$OS`AEj$Wet-u165-B+T& ziAuS3+iQ>zO`LrAqN~TZNX(~1wF&xiaoV7-RclLm7S_HB{!fxVxe!$_MXIDzzT^l~Mdx2;48~NMF`z z)H7JD9`ChHCqAH{$T|7`e!WlKUf6CrDHFf&rL7!16B%^vnBi$LCf z0rYSF<^eO2%b0`lbb>Y(bRL9P!cLocY+XPH()ciYb2;X^`x;CWn-L^Ev`eAv)`R)m zBj$I9u7Xl}ZY1Tzdx1{Y!$GNGi-eUOQhGY$So%OZuMcH$p|Z}1Pt}{Zv027Wu&Q-; zXFUxv*L^Ua8&rB?B#kCKbh4i1^Hw%zXVUWo6Sl0Cj1z%tLrF*JZZ~yQ^??jTs^qLb zr90LzME45l*^GOQbZd~u*^# zw=({xcqO>+P3B!}c73Hz_z@g5*AafD{axfsMdml2q||m){QTfPFZ!L`U*vmFbhHn} z&zJw-f|@uo2Kk?Y{vVhtN&jU&DJbpB9*$uDBA%{lvCl$ zd{?l*j?#Yc{J+Zl-RvjxXTcsHpK=!De+xRwiNr7cf8qZ#@?61T+`dYk@EbV%e2sa6 zhy2c{v$=$?2KYnlASnJ4Mr6U$0se6|2*!lSC_F)LzIOZk3v3V^4Gb9JN!Zs>@t?oU zcLe3RP5guR&rg{z*I#Mu$@nOX0zv-IVW9SfUuoZECH~t1{*dN*3Vv6Jj52;ieH9ff zF)i)&lIKy`ml^aIS@1fzH9o$~*H6_$i6VZUbXykvzhR)U%a0wUd9>`amHo7I|4|X1 zT*vP~NBI-JJg-h|A#bI6+|Sz|!WUcwvY)SF?Azd>v?CFOC-PE|Nhj^gJh7JfL4Rt? zUsiDY>|Qbne{)IWRfO+H89RR07zaGX9lIY!%$`g6lkZ=8?vuXz`P1~khVnolxU}n8 TX-;0Azl8p=p{xrK0;2j4&n9{( literal 0 HcmV?d00001 diff --git a/Linux系统编程篇/02目录IO/openAndCloseDir.c b/Linux系统编程篇/02目录IO/openAndCloseDir.c new file mode 100644 index 0000000..eb06e97 --- /dev/null +++ b/Linux系统编程篇/02目录IO/openAndCloseDir.c @@ -0,0 +1,25 @@ +#include +#include +#include +#include +#include + + + +int main(int argc, char *argv[]) +{ + int ret; + DIR *dp; + if (argc !=2){ + printf("Usage:%s \n", argv[0]); + return -1; + } + dp = opendir(argv[1]); + if (dp !=NULL){ + printf("opendir is ok\n"); + return -1; + } + closedir(dp); + printf("opendir is closed\n"); + return 0; +} diff --git a/Linux系统编程篇/02目录IO/readdir b/Linux系统编程篇/02目录IO/readdir new file mode 100755 index 0000000000000000000000000000000000000000..b85cc3c053b5b44a7a8f67298d8088723409c099 GIT binary patch literal 16136 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 +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ int ret; + DIR *dp; + struct dirent *dir; + if (argc != 2){ + printf("Uage:%s \n",argv[0]); + return -1; + }; + dp = opendir(argv[1]); + if (dp == NULL) { + printf("opendir is error\n\n"); + return -2; + } + printf("opendir is ok\n"); + while(1) + { + dir = readdir(dp); + if (dir!=NULL) { + printf("file name is %s\n",dir->d_name); + } + else + break; + } + closedir(dp); + return 0; +} diff --git a/Linux系统编程篇/02目录IO/test/a.test b/Linux系统编程篇/02目录IO/test/a.test new file mode 100644 index 0000000..e69de29 diff --git a/Linux系统编程篇/03库的制作与使用/动态库制作/a.out b/Linux系统编程篇/03库的制作与使用/动态库制作/a.out new file mode 100755 index 0000000000000000000000000000000000000000..8783cc9ab3d7baa10a17f08407be3d1fc141bbee GIT binary patch literal 15952 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 S)xeiaHGXlg@oN4z{C@&wI>(*> literal 0 HcmV?d00001 diff --git a/Linux系统编程篇/03库的制作与使用/动态库制作/libmylib.so b/Linux系统编程篇/03库的制作与使用/动态库制作/libmylib.so new file mode 100755 index 0000000000000000000000000000000000000000..f96629d435b1f7049fd857815cf53b5d77637076 GIT binary patch literal 15568 zcmeHOU2Ggz6+UYxtwR%g6H?(MkPKBSrG!o#lN2aQvW|Z;0Xt0-TcUz8S$o&sMf+pz z&Ng-*ASj}uM3qvBz93bq;DJ_ERe0e~0yzpaMLZBhB`CZYP)jNhxJ5u(P?mGPmf z-9>>1gwVZ;_q*r!-udS4-kHpq&yJ3db)`~-)=h_LRU*o$;p9Phi0(sl8-MPk_ZZ)G ztERX0_N=!mAf>G=V;Gal&;y5b5pwphuQiVx?hyjUtu(|jYU6L)6(dey&&j*TBbIvfuAgTDL} zq?pN+e#%s&e})m~xv{;tLD>GZ7`fs5hIO9S8 zM(RzE_4a?X@3yl&=jh1xd*Ang-R3c;#PjVteVhI8>`>fA|4IJ)dO|NbBmT?sT+B1j z(cbhUUBjDhxt|ASy=#sE$ADwNG2j?*3^)cH1C9a5fMdWhaB~cxE)#W_sIfew;Tw@g zZ`L-cd_e0tx2cSJ&mAh`-VAlCsQZ-rIcc!}ztY8vw0XxjM)>d%ji z&GCRozHK$~J!*eb<<>kk-+v2G$DSN-AW?^VY0l~;AR&fzOLXVB#cXVhxyl-sm^yp+bIdpVqI{mm=~F4?cJOxhjj&spn_NkMavF z8ruC@HJ6RD`(KM=GD<|UH+Ro z*)QYo9&~zd2x+k&L6+BQ;_;o{AA-MbLl9|*dw=CU3Hv1WVc>4{L|k(GkFj0$V8mme z24dfo?UldEt^E}H=V{i-UWj|&bah&Oo;NA_IAW1j`eej*L?haa%OHrc}= zV;={463i_*f2$=r%N@y$cw9FCar_t`{NeaNr}0NMA+AG!@RNACR!PQRV4ZM+>!jB2 zw*G$OdW>C6!#p5A!ku`$r*SQWqawBi;Nyw-j2eLOLmJ4yFDK$pssRYUPVrw&#Glas z;Li}Kn9TP~A|CrN5ZAj%ljQGtjmP;XPdyc}{#0wYMqlt-{3rY)9{V>?p3THta{M2% zF&>}stT*sW@nG&_{XqQ_?#LW*J&Nmiyf>NjhYb7`$M(hIalO?qKTO=Ax zz&F_tkM}ax)6;nPCF3E>g|YZx{Q|jt9R>azBK*$Kzidw9+C5Qe#4-%^l*04%mQAiGYMi{{&ALUP%A| literal 0 HcmV?d00001 diff --git a/Linux系统编程篇/03库的制作与使用/动态库制作/mylib.c b/Linux系统编程篇/03库的制作与使用/动态库制作/mylib.c new file mode 100644 index 0000000..229d60e --- /dev/null +++ b/Linux系统编程篇/03库的制作与使用/动态库制作/mylib.c @@ -0,0 +1,6 @@ +#include +void mylib(void); +void mylib(void) +{ + printf("This is mylib\n"); +} diff --git a/Linux系统编程篇/03库的制作与使用/动态库制作/mylib.o b/Linux系统编程篇/03库的制作与使用/动态库制作/mylib.o new file mode 100644 index 0000000000000000000000000000000000000000..37674c49159281753797b8a220025bd30004c022 GIT binary patch literal 1496 zcmbtU&ubG=5S~qItJtRT$3d*foQnRNS%7ack~GvCbj=Dm3@eYt+?X2tVJ#iQ$V5GhJ@ zuX5lwa<@TMTBILK=YO_ayI)#wjsR`#e*6kMe(>RLZ!7irFCJ}gb%-{a&1?R}b|>rG z%nt&yX6h?JmWRQM)m2kpyCg99G|O6J#i|>(+r;hP1Dj!moGuJ`&o{~2sd>u_^GC`#pu6I};HZaA#H6Fxh8;4gO$ysnFNwB8W1}5Q z=22)vGMzLflMITWJBZ_`&$<4d-ymB<7m?Q ze;l95xRW_&k%q)NS53Qbc9|2HQ9}#F?nz-?V$2zkzKt`2Ul3g1o4|Bm9ml%;FLNGi z{wqIVF4jDBmmF*VD*I(|`(NcGFg>T%_Qb*d%A$O=H#n(&x$bQ_DEV&fCg + +void mylib(void); +int main(void){ + mylib(); + return 0; +} diff --git a/Linux系统编程篇/03库的制作与使用/静态库制作/a.out b/Linux系统编程篇/03库的制作与使用/静态库制作/a.out new file mode 100755 index 0000000000000000000000000000000000000000..51d9d007b09e59353a14029208d34feac1c9f1f2 GIT binary patch literal 16024 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 +void mylib(void); +void mylib(void) +{ + printf("This is mylib\n"); +} diff --git a/Linux系统编程篇/03库的制作与使用/静态库制作/mylib.o b/Linux系统编程篇/03库的制作与使用/静态库制作/mylib.o new file mode 100644 index 0000000000000000000000000000000000000000..37674c49159281753797b8a220025bd30004c022 GIT binary patch literal 1496 zcmbtU&ubG=5S~qItJtRT$3d*foQnRNS%7ack~GvCbj=Dm3@eYt+?X2tVJ#iQ$V5GhJ@ zuX5lwa<@TMTBILK=YO_ayI)#wjsR`#e*6kMe(>RLZ!7irFCJ}gb%-{a&1?R}b|>rG z%nt&yX6h?JmWRQM)m2kpyCg99G|O6J#i|>(+r;hP1Dj!moGuJ`&o{~2sd>u_^GC`#pu6I};HZaA#H6Fxh8;4gO$ysnFNwB8W1}5Q z=22)vGMzLflMITWJBZ_`&$<4d-ymB<7m?Q ze;l95xRW_&k%q)NS53Qbc9|2HQ9}#F?nz-?V$2zkzKt`2Ul3g1o4|Bm9ml%;FLNGi z{wqIVF4jDBmmF*VD*I(|`(NcGFg>T%_Qb*d%A$O=H#n(&x$bQ_DEV&fCg + +void mylib(void); +int main(void){ + mylib(); + return 0; +} diff --git a/Linux系统编程篇/04进程基础/a.out b/Linux系统编程篇/04进程基础/a.out new file mode 100755 index 0000000000000000000000000000000000000000..bb4ce0464604febb2f197ffe14b18917ac713b6e GIT binary patch literal 16136 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 +#include + + +int main(void) +{ + pid_t pid; + pid = fork(); + if (pid < 0) + { + printf("fork is error\n"); + return -1; + } + // 父进程 + if (pid > 0) { + printf("This is parent, parent pid is %d\n",getppid()); + } + // 子进程 + if (pid == 0){ + printf("This is child, child pid is %d\n",getpid()); + } + return 0; +}