導航:首頁 > 程序命令 > c調用命令

c調用命令

發布時間:2022-05-28 10:39:27

① c語言調用庫函數用什麼命令

您好,很高興回答您的問題。
在c語言中,專門建立有一組需要經常使用、但是編寫起來不太簡單的函數,系統把這些功能載入到軟體內容。普通用戶所需要使用時,只需要按照規定輸入正確的調用語句,即可打開並運行謝謝文件。打開的格式為#include<對應文件名>,如打開輸入輸出函數為#include<stdio. h>。

linux下如何用c語言調用shell命令

在c語言中調用shell命令的方法實現。
c程序調用shell腳本共有兩種方法
:system()、popen(),分別如下:
system()
不用自己去創建進程,系統已經封裝了這一步,直接加入自己的命令即可
popen()
也可以實現執行的命令,比system
開銷小
以下分別說明:
1)system(shell命令或shell腳本路徑);
system()
會調用fork()產生
子歷程,由子歷程來調用/bin/sh-c
string來履行
參數string字元串所代表的命令,此命令履行
完後隨即返回原調用的歷程。在調用system()期間sigchld
信號會被暫時擱置,sigint和sigquit
信號則會被漠視


回值:如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(null),則返回非零值。
如果
system()調用成功
則最後會返回履行
shell命令後的返回值,但是此返回值也有可能為system()調用/bin/sh失敗所返回的127,因
此最好能再反省
errno
來確認履行
成功

system命令以其簡略
高效的作用得到很很廣泛
的利用
,下面是一個例子
例:在/tmp/testdir/目錄下有shell腳本tsh.sh,內容為
#!/bin/sh
wget
$1
echo
"done!"
2)popen(char
*command,char
*type)
popen()
會調用fork()產生
子歷程,然後從子歷程中調用/bin/sh
-c來履行
參數command的指令。參數type可應用
「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立
管道連到子歷程的標准
輸出設備
或標准
輸入設備
,然後返回一個文件指針。隨後歷程便可利用
此文件指針來讀取子歷程的輸出設備
或是寫入到子歷程的標准
輸入設備
中。此外,所有應用

件指針(file*)操作的函數也都可以應用
,除了fclose()以外。
返回值:若成功
則返迴文件指針,否則返回null,差錯
原因存於errno中。注意:在編寫具suid/sgid許可權的程序時請盡量避免應用
popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
例:c程序popentest.c內容如下:
#include
main
{
file
*
fp;
charbuffer[80];
fp=popen(「~/myprogram/test.sh」,」r」);
fgets(buffer,sizeof(buffer),fp);
printf(「%s」,buffer);
pclose(fp);
}

③ 如何在C語言中調用cmd命令

在C語言中調用shell命令的方法實現。
C程序調用shell腳本共有兩種方法 :system()、popen(),分別如下:
system()
不用自己去創建進程,系統已經封裝了這一步,直接加入自己的命令即可
popen() 也可以實現執行的命令,比system
開銷小
以下分別說明:
1)system(shell命令或shell腳本路徑);
system()
會調用fork()產生 子歷程,由子歷程來調用/bin/sh-c string來履行 參數string字元串所代表的命令,此命令履行
完後隨即返回原調用的歷程。在調用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被漠視 。

回值:如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(NULL),則返回非零值。 如果
system()調用成功 則最後會返回履行 shell命令後的返回值,但是此返回值也有可能為system()調用/bin/sh失敗所返回的127,因
此最好能再反省 errno 來確認履行 成功 。
system命令以其簡略
高效的作用得到很很廣泛 的利用 ,下面是一個例子
例:在/tmp/testDir/目錄下有shell腳本tsh.sh,內容為

#!/bin/sh
wget $1
echo "Done!"
2)popen(char
*command,char *type)
popen()
會調用fork()產生 子歷程,然後從子歷程中調用/bin/sh -c來履行 參數command的指令。參數type可應用
「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立 管道連到子歷程的標准 輸出設備 或標准 輸入設備
,然後返回一個文件指針。隨後歷程便可利用 此文件指針來讀取子歷程的輸出設備 或是寫入到子歷程的標准 輸入設備 中。此外,所有應用 文
件指針(FILE*)操作的函數也都可以應用 ,除了fclose()以外。
返回值:若成功
則返迴文件指針,否則返回NULL,差錯 原因存於errno中。注意:在編寫具SUID/SGID許可權的程序時請盡量避免應用
popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
例:C程序popentest.c內容如下:
#include<stdio.h>
main
{
FILE * fp;
charbuffer[80];
fp=popen(「~/myprogram/test.sh」,」r」);
fgets(buffer,sizeof(buffer),fp);
printf(「%s」,buffer);
pclose(fp);
}

④ 如何在C語言中調用shell命令

1、system(執行shell 命令)
相關函數 fork,execve,waitpid,popen
表頭文件 #include<stdlib.h>
定義函數 int system(const char * string);
函數說明 system()會調用fork()產生子進程,由子進程來調用/bin/sh-c
string來執行參數string字元串所代表的命令,此命令執行完後隨
即返回原調用的進程。在調用system()期間SIGCHLD 信號會被暫時
擱置,SIGINT和SIGQUIT 信號則會被忽略。
返回值 如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-
1。若參數string為空指針(NULL),則返回非零值。如果system()調
用成功則最後會返回執行shell命令後的返回值,但是此返回值也有
可能為system()調用/bin/sh失敗所返回的127,因此最好能再檢查
errno 來確認執行成功。
附加說明 在編寫具有SUID/SGID許可權的程序時請勿使用system(),system()會
繼承環境變數,通過環境變數可能會造成系統安全的問題。

範例:

#include<stdlib.h>
main()
{
system(「ls -al /etc/passwd /etc/shadow」);
}

2、popen(建立管道I/O)
相關函數 pipe,mkfifo,pclose,fork,system,fopen
表頭文件 #include<stdio.h>
定義函數 FILE * popen( const char * command,const char * type);
函數說明 popen()會調用fork()產生子進程,然後從子進程中調用/bin/sh -c
來執行參數command的指令。參數type可使用「r」代表讀取,「w」
代表寫入。依照此type值,popen()會建立管道連到子進程的標准輸
出設備或標准輸入設備,然後返回一個文件指針。隨後進程便可利
用此文件指針來讀取子進程的輸出設備或是寫入到子進程的標准輸
入設備中。此外,所有使用文件指針(FILE*)操作的函數也都可以使
用,除了fclose()以外。
返回值 若成功則返迴文件指針,否則返回NULL,錯誤原因存於errno中。
錯誤代碼 EINVAL參數type不合法。
注意事項 在編寫具SUID/SGID許可權的程序時請盡量避免使用popen(),popen()
會繼承環境變數,通過環境變數可能會造成系統安全的問題。

範例:

#include<stdio.h>
main()
{
FILE * fp;
char buffer[80];
fp=popen(「cat /etc/passwd」,」r」);
fgets(buffer,sizeof(buffer),fp);
printf(「%s」,buffer);
pclose(fp);
}

執行 root :x:0 0: root: /root: /bin/bash

3、使用vfork()新建子進程,然後調用exec函數族

#include<unistd.h>
main()
{
char * argv[ ]={「ls」,」-al」,」/etc/passwd」,(char*) };

if(vfork() = =0)
{
execv(「/bin/ls」,argv);
}else{
printf(「This is the parent process\n」);
}
}

⑤ 怎樣在一個 C 程序中調用另一個程序 (獨立可執行的程序, 或系統命令)

使用庫函數 system(), 它的功能正是所要的。注意, 系統返回的值最多是命令的退出狀態值 (但這並不是一定的), 通常和命令的輸出無關。還要注意,system() 只接受一個單獨的字元串參數來表述調用程序。如果要建立復雜的命令行, 可以使用 sprintf()。根據使用的系統, 也許還可以使用系統函數, 例如exec 或 spawn (或execl,execv, spawnl, spawnv 等)。

⑥ C語言可以調用所有dos命令嗎

C語言在windows下編程嘛,難免使用控制台,那何必後台執行呢,即使不這樣也是「黑乎乎的cmd窗口」。
system()就可以了

⑦ 如何在C語言中調用DOS命令

在C語言中調用shell命令的方法實現。
C程序調用shell腳本共有兩種方法
:system()、popen(),分別如下:
system()
不用自己去創建進程,系統已經封裝了這一步,直接加入自己的命令即可
popen()
也可以實現執行的命令,比system
開銷小
以下分別說明:
1)system(shell命令或shell腳本路徑);
system()
會調用fork()產生
子歷程,由子歷程來調用/bin/sh-c
string來履行
參數string字元串所代表的命令,此命令履行
完後隨即返回原調用的歷程。在調用system()期間SIGCHLD
信號會被暫時擱置,SIGINT和SIGQUIT
信號則會被漠視


回值:如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(NULL),則返回非零值。
如果
system()調用成功
則最後會返回履行
shell命令後的返回值,但是此返回值也有可能為system()調用/bin/sh失敗所返回的127,因
此最好能再反省
errno
來確認履行
成功

system命令以其簡略
高效的作用得到很很廣泛
的利用
,下面是一個例子
例:在/tmp/testDir/目錄下有shell腳本tsh.sh,內容為
#!/bin/sh
wget
$1
echo
"Done!"
2)popen(char
*command,char
*type)
popen()
會調用fork()產生
子歷程,然後從子歷程中調用/bin/sh
-c來履行
參數command的指令。參數type可應用
「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立
管道連到子歷程的標准
輸出設備
或標准
輸入設備
,然後返回一個文件指針。隨後歷程便可利用
此文件指針來讀取子歷程的輸出設備
或是寫入到子歷程的標准
輸入設備
中。此外,所有應用

件指針(FILE*)操作的函數也都可以應用
,除了fclose()以外。
返回值:若成功
則返迴文件指針,否則返回NULL,差錯
原因存於errno中。注意:在編寫具SUID/SGID許可權的程序時請盡量避免應用
popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。
例:C程序popentest.c內容如下:
#include
main
{
FILE
*
fp;
charbuffer[80];
fp=popen(「~/myprogram/test.sh」,」r」);
fgets(buffer,sizeof(buffer),fp);
printf(「%s」,buffer);
pclose(fp);
}

⑧ c語言如何調用命令行並且是以管理員身份運行的命令行

如果你的命令要求以管理員身份運行,那麼你自己的C語言程序也得是以管理員身份運行的,這可以通過在程序上點擊 右鍵 -》以管理員許可權運行 ,或者通過添加一個 manifest 文件的形式來提升許可權。參見 jingyan..com/article/f0e83a25c2e78a22e5910137.html 中的步驟1,以外置文件的形式來提升許可權。

⑨ 怎樣在c程序中調用命令行

你的意思是調用ping之類的命令嗎?
這樣的話調用windnws的API函數可以實現吧!我忘了是哪個函數了,回去查一下…

⑩ c怎樣調用外部命令,程序

#include<stdio.h>
頭文件main()
主函數{int
a,b,c,sum=0;
定義變數scanf("%d,%d,%d",&a,&b,&c);
輸入3個數sum=abc(a)+abc(b)+abc(c);
調用函數abcprintf("%d\n",sum);
輸出結果}int
abc(int
a)
自定義函數abc{int
b,c;
c=a/10%10;
c等於a除10,再除10求余數if(c>=5)
如果c>=5b=(a/100+1)*100;
b=(a除100)乘100else
if(c<5)
如果c<5b=a/100*100;
b=
(a/100)*100return
b;
}

閱讀全文

與c調用命令相關的資料

熱點內容
開發聊天機器人python 瀏覽:854
程序員入職後無法工作 瀏覽:951
買海鮮用什麼app好 瀏覽:922
看劇用什麼app好 瀏覽:905
sql命令update 瀏覽:25
生意不忙怎麼解壓 瀏覽:500
歡太健康app在哪裡下載 瀏覽:488
androidtools使用教程 瀏覽:971
十天突破雅思口語pdf劍9 瀏覽:295
李誕笑場pdf 瀏覽:265
自用紙巾做解壓筆 瀏覽:129
銀行流水解壓碼是多少 瀏覽:895
百度哪個app好用 瀏覽:316
115廣告聯盟源碼 瀏覽:494
聯通app簽到源碼 瀏覽:680
怎麼連接另一個伺服器的資料庫 瀏覽:742
貓盤洗白命令 瀏覽:844
168api源碼 瀏覽:967
不同地方的文件伺服器如何通信 瀏覽:599
自己電腦上搭建ftp伺服器地址 瀏覽:977