編寫乙個簡單的shell

2021-08-01 09:32:48 字數 1141 閱讀 4621

#include

#include

#include

#include

#include

#include

#include

#include

void getloginname()

void gethostname()

void getdir()

p++;

printf(" %s]#",p);

}int main()

char *_argv[32];

char *start = buf;

_argv[0] = start;

int i = 1;

while(*start)

else

}_argv[i] = null;

pid_t id = fork();

if(id ==0)

else }}

return

0;

讀取命令分析圖:

水平有限,首先拿到read()函式所讀取到的命令。

ssize_t read(int fd, void *buf, size_t count);
這裡是read()函式的原型,上面的**我們用到了size_t s=read(0,buf,sizeof(buf)-1);可以看到第乙個引數為檔案識別符號,0對應的是輸入流,所以我們可以拿到在命令列輸入的字串。

實現shell的機理是利用程序程式替換。

這裡簡單說一下這幾個函式的區別,

p(path):則第乙個引數為路徑。

l(list):即把每個命令都當做引數傳遞。

v(vector):通過指向各引數的指標陣列來傳遞命令。

e(environment):可以傳遞新的環境變數

這裡需要注意的是,l和v不可能同時出現,對於l來說最後乙個引數必須為null,對於v來說,陣列中最後乙個指標必須是null。

shell編寫乙個簡單的jmeter自動化壓測指令碼

在公司做壓力測試也挺長時間了,每次測試前環境資料準備都需要話費較長時間,所以一直在考慮能不能將整個過程實現自動化進行,於是就抽空寫了乙個自動化指令碼,當然這個指令碼目前功能十分簡陋,也不完善,很有很多需要改的地方,後續再優化。文中如有錯誤或者不妥之處,還望指教。1 初始化資料庫 匯入使用者,清除資料...

編寫乙個簡單的死鎖

public class dead lock1 class runnable1 implements runnable catch exception e class runnable2 implements runnable catch exception e obj1 和 obj2 都是屬於類的...

乙個簡單的makefile的編寫

標頭檔案 part.h cpp檔案 包含part.h part.cpp cpp檔案 包含part.h partmain.cpp makefile編寫如下 main partmain.o part.o g o main partmain.o part.o partmain.o partmain.cpp...