[英]usage of system function in cpp program
請解釋以下語法:system(const char * command);
我想使用此功能在Unix系統上運行命令。 我需要使用相同的命令執行(自動化)多個測試用例,但是它們還有其他不同的輸入值。如何在所有測試用例中重用此代碼。
int main()
{
char *base = "./your_testcase " ;
char aux[50] = "./your_testcase " ;
char *args[] = {"arg1" ,"arg2" ,"arg3"};
int nargs = 3;
for(i=0;i < nargs;i++)
{
/* Add arg to the end of the command */
strcat(aux,args[i]) ;
/* Call command with parameter */
system(aux);
/* Reset aux to just the system call with no parameters */
strcpy(aux,base);
}
}
請記住,調用系統與調用fork和execl相同。 這意味着您需要了解諸如打開套接字描述符和文件描述符之類的內容。 我曾經遇到過服務器上的TCP / IP套接字死掉的問題,因為客戶端正在調用系統,該系統創建了一個與服務器不服務的新套接字連接。
我看不出語法可能是個問題:
system( "foo" );
通過您的首選外殼程序執行名為foo的程序。
為每次調用生成一個命令行,然后一次將這些命令行傳遞到system()。
另請參見問題:“如何使用參數調用外部程序?
我會避免使用system()函數,這是為什么這可能不是一個好主意的鏈接
這是代碼,如何在C ++中實現system()命令
#include <cstdlib>
int main()
{
system("pause");
return 0;
}
system(const char *command)
用於在當前操作系統的命令行上執行命令。 使用此命令通常不是最好的主意,因為命令是特定於平台的。 請記住, const char *command
是一個字符串,您可以將任何字符串值作為參數傳遞,並將其發送到命令行。
我認為Anter對一個示例感興趣:
例如刪除目錄中的文件:
系統(“ / bin / rm -rf /home/ederek/file.txt”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.