#include
#include
#include
#include
#include
#include
#include
#include
#define max_string 256
#define signin "<"
#define signout ">"
#define signpine "|"
const char* expst = "exit"; //控制終端輸入exit,shell退出
int strtoken(char* buf,char** p) //以空格符為標準分割字串,字串頭指標儲存在指標陣列p中
p[i-1] = null; //重點:在linux終端輸入字串是以『\n』結束的,比如ls -l後回車,則三個字串分別為ls\0,-l\0,\n\0
return (i-1); //p[i-1] = null 的目的就是消除字串\n\0,為exeve的呼叫提供結尾引數null
}int strprotok(char* buf, char** p)
return i;
}void inorout(int i, char** p) //以'<','>'分別判斷進而重定向
void performpro(char* buf,char** p)
int main(void)
err = pipe(ppine);
if(err < 0)
pidchil = fork();
if(pidchil < 0)
if(pidchil == 0)
if(pidchil > 0)
if(piddaug == 0)
if(piddaug > 0)}}
else
if(pid == 0)
if(pid > 0)}}
}linux下的基本命令都可以實現,缺點是在實現管道命令「|」時,父程序fork出兩個子女程序,雖然屬於同乙個session,但父程序是前台程序,子女程序是後台程序,這就使兩個程序間管道通訊時,父程序已結束,輸出了「@」提示符,而子女程序在之後才能結束。
剛學linux c沒多久,不過感覺真的很有意思~
Linux下C語言實現簡單的udp通訊
用c語言實現udp 通訊。寫乙個udp 的客戶端,可以向外傳送訊息。再寫乙個udp服務端,接收客戶端的訊息,並且列印出來。事先說明 在window和linux中有一下結構 struct sockaddr struct sockaddr in 在netinet in.h 中定義 儲存ip位址,使用in...
用C語言實現乙個簡單的Linux殼層(Shell)
期末考試考完,進入聖誕假期,終於騰出手寫這篇文章了。這是我們os課的第乙份作業,要求實現乙個簡單的linux shell,用c寫出乙個類似terminal的東西。大致要求 可以迴圈接收command,根據內容實現相應動作,實現幾個常見command即可。作業目的是熟悉幾個知識點 linux的pare...
Linux下C語言實現CopyFile
linux下c語言實現檔案拷貝 function copy file from file1 to file2 how to execute copyfile file1 file2 under linux data 2007 05 09 include fprintf stderr,bufsiz i...