新聞中心
Linux環(huán)境下使用C語言調(diào)用可執(zhí)行程序的方法

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、牡丹江ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的牡丹江網(wǎng)站制作公司
Linux系統(tǒng)因其安全、穩(wěn)定、開源等優(yōu)越性能受到了廣泛的歡迎和使用,同時,C語言也是Linux下面使用最廣泛的一種編程語言之一。在Linux環(huán)境下,將系統(tǒng)命令行字符串轉(zhuǎn)換為可執(zhí)行程序是非常常見的操作。本文將介紹Linux環(huán)境下使用C語言調(diào)用可執(zhí)行程序的方法。
C語言調(diào)用可執(zhí)行程序的流程:
1. 頭文件
注重程序的可讀性,同時減少代碼量
頭文件:#include
#include
2. 核心代碼
C程序的核心代碼是system()函數(shù)。system()函數(shù)可以執(zhí)行系統(tǒng)命令,返回一個無符號整數(shù)型變量。
在C語言中執(zhí)行可執(zhí)行程序時,一般需要定義一個char型指針變量,并將該指針變量指向可執(zhí)行程序的路徑。
char buf[1024];
memset(buf,0,sizeof(buf));
sprintf(buf,”/the/path/to/executable %s”,argv[1]);
system(buf);
其解釋如下:
buf[1024] 是定義的字符數(shù)組,存放可執(zhí)行文件的路徑和參數(shù)(argv[1]表示獲取的命令行參數(shù))
memset():清空指針,就像memset(buf,0,sizeof(buf)),將 buf中存的值都清零。
sprintf(buf,”/the/path/to/executable %s”,argv):格式化輸出字符串,得到1個類似于Linux系統(tǒng)命令的字符串
system(buf);: 系統(tǒng)命令字符命令行(即buf變量) 輸出到Linux系統(tǒng),執(zhí)行指令。
3. 完整代碼演示
#include
#include
int mn(int argc, char *argv[]) {
if(argc!=2) {
printf(“使用方法: %s \n”, argv[0]);
exit(0);
}
char buf[1024];
memset(buf,0,sizeof(buf));
sprintf(buf,”/the/path/to/executable %s”,argv[1]);
system(buf);
exit(0);
}
小結(jié)
相關(guān)問題拓展閱讀:
- 用C語言編寫的程序,能不能直接在Linux下運行?
用C語言編寫的程序,能不能直接在Linux下運行?
linux時用C語言編寫的。。。
你的問題問得模棱兩可的。
按照我的理解有三個意思,1。在windows或mac系統(tǒng)下老讓寫的可以正常編譯的C源代碼,能不能再linux直接編譯執(zhí)行。
2,在windows或mac系統(tǒng)下編譯好的C程序可以不可以直接拿到linux下執(zhí)行。
3.在linux系統(tǒng)下可不可以執(zhí)行C語派茄言寫的程序。
當(dāng)然應(yīng)該不可能是地三個意思了。
如果是第二個意思,那么答案是:肯定不能執(zhí)行。因為C語言是于系統(tǒng)有關(guān)的。所以在window下編譯的可執(zhí)行文件,和在linux下是不一樣的。
如果是之一個意思。那么就要看情況了侍羨局。
如果你的源代碼完全是使用的標(biāo)準(zhǔn)C寫的那么應(yīng)該是可以的例如寫一個hello world程序。
如果你用了window的系統(tǒng)調(diào)用。那么就不行了。
需要gcc命令將源代碼重新編譯,連接,形成二進制文件即可在linux下運行。
linux c 調(diào)用可執(zhí)行程序的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux c 調(diào)用可執(zhí)行程序,linux環(huán)境下使用c語言調(diào)用可執(zhí)行程序的方法,用C語言編寫的程序,能不能直接在Linux下運行?的信息別忘了在本站進行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
標(biāo)題名稱:linux環(huán)境下使用c語言調(diào)用可執(zhí)行程序的方法(linuxc調(diào)用可執(zhí)行程序)
文章源于:http://www.dlmjj.cn/article/djejche.html


咨詢
建站咨詢
