1 /*寫乙個屬於自己的微型myshell
2 * 功能:myshell>ls
3 * 能夠執行基礎linux 命令
4 *
5 */
6 #include7 #include8 #include9 #include10 #include11 //1、獲取終端輸入
12 //2、解析輸入(按空格解析到乙個乙個的命令引數)
13 //3、建立乙個子程序
14 // 在子程序中進行程式替換,讓子程序執行命令
15 //4、等待子程序執行完畢,收屍,獲取狀態退出碼
16 int argc;
17 char *argv[32];
18 int param_parse(char *buff)
35 ptr++;
36 }
37 argv[argc++]=tmp;
38 argv[argc]=null;
39 }
40 41 int exec_cmd()
42 else if(pid==0)
50
54 //父程序在這裡必須等待子程序退出,來看看子程序為什麼會退出了
55 //是不是出現了什麼錯誤,通過獲取狀態碼,並且轉換以下退出碼所對應的錯誤資訊進行列印
56 int statu;
57 wait(&statu);
58 //判斷子程序是否是**執行完畢退出
59 if(wifexited(statu))
63 }
64 65 int main()
66 ;
70 //%[^\n] 獲取資料直到遇到\n為止
71 //%*c 清空快取區,資料不要了。
72 scanf("%[^\n]%*c",buff);
73 printf("%s\n",buff);
74 param_parse(buff);
75 exec_cmd();
76 }
77 78 return 0;
79 80
來看看執行結果
之前在[long@localhost]程序下執行命令,當實現了自己的shell後,在myshell程序下執行命令,此時linux預設的程序將成為bash後台子程式
./myshell 的父程序ppid為2543,此時2543對應的程序是bash,所以之前的shell被轉化為後台程序,myshell成為了當前執行的程序。
當前執行的程式為前台程序,前台程序只能有乙個,而後台程序可以有多個,當結束了前台程序,後台程序會有乙個程序來作為前台程序。
如何建立屬於自己的乙個論壇
最近突然興起,想建立乙個屬於自己的論壇。剛開始打算自己寫乙個,然後發現,工作量太大。希望能找到乙個原始碼,直接使用即可。找了許多基於ssh的框架的原始碼,但是最後發現都不行,都是各種demo,各種缺功能,需要自己去完善。後面,找到乙個php的框架原始碼,叫discuz,還不錯,可惜了,是php寫的。...
乙個只屬於他自己的故事
當感情來的迅猛時,誰也無法阻擋,誰都只是想珍惜這種感覺!畢竟這種感覺讓人覺得是那麼的甜蜜而又苦澀 聽過乙個傳說,如果心裡裝著想念的人,就可以在滿月中看到那個人的臉。那晚他想念她了,他就傻傻地往窗外看,可是連個月牙都沒有,唯有的是那孤立於凜冽寒風中的路燈。他想看月亮,他想知道當他想她的時候,她在做什麼...
構建乙個屬於你自己的映象
我們將通過docker whalesay這個映象來構建乙個屬於自己的映象。第一步 建立乙個dockerfile檔案 1.切換到命令終端。2.使用命令mkdir mydockerbuild 穿件乙個名為mydockerbuild的資料夾。mkdir mydockerbuild3.切換到新建立的資料夾。...