LINUX中編寫函式實現system功能

2021-06-20 07:21:27 字數 981 閱讀 9309

在linux程式設計中,經常要呼叫一些系統命令或shell指令碼來幫助我們完成一些操作,大部分情況下system函式可以勝任,但有時在操作完成之後,我們還要獲取它的輸出,這時system函式就無能為力了。為此我編寫了乙個函式,可以先讓系統執行一條命令,然後利用管道技術獲取它的輸出。

上**:

[cpp]view plain

copy

print?

#include 

#include 

#include 

#include 

#include 

#define maxline 1024  

//呼叫系統命令,並獲取輸出(相當於使用system)  

//input: 要呼叫的系統命令  

//output: 呼叫命令後系統的輸出  

//maxlen: 輸出字串的最大長度  

intmysystem(

char

*input, 

char

*output, 

intmaxlen)    

intmain(

intargc, 

char

**argv)    

char

output[maxline];    

mysystem(argv[1], output, maxline);    

printf("the result of '%s' is: \n%s"

, argv[1], output);    

return

0;    

}    

執行示例:

qch@ubuntu:~/code$ gcc temp.c -o temp

qch@ubuntu:~/code$ ./temp pwd

the result of 'pwd' is: 

/home/qch/code

linux 指令碼 函式編寫

為增加 復用性,建立函式 函式1,func1.sh 同一指令碼內呼叫 bin bash 定義變數 user aaa display display source func1.sh 到入庫 或者 func1.sh 函式2,func2.sh 跨指令碼呼叫 bin bash 引入外部指令碼 使用sourc...

學習筆記九 linux中編寫系統呼叫函式

寫著這篇部落格前,本人也算是成功地完成了在linux4 16到linux 5.0的核心編譯,大致過程還是有經驗的。這裡也算是將編譯新核心的內容重新來一遍。虛擬機器內完成,雙系統的興許會有不同。首先要不嫌麻煩地安裝幾個軟體,不知道是不是必須的,但不會出錯。sudo apt get install li...

Linux中指令碼的編寫

bin bash search home work search include path cd dirname 0 pwd dirname 0 當前指令碼存放的目錄 cd include path source conf if d search then 判斷某個目錄是否存在 mkdir p se...