system函數(shù)調用系統(tǒng)命令system函數(shù)用于C程序中調用各大操作系統(tǒng)的命令和應用程序,被調用的命令和應用程序以字符串的方式作為system函數(shù)的參數(shù)傳入,實現(xiàn)讀取用戶輸入的命令,并執(zhí)行該命令。在windows上運行該程序時可以傳入notepad,calc等等實現(xiàn)程序調用。而Linux和macOS上也有自己的命令可以提供給system函數(shù)來調用。 這里編寫一個交互式程序:通過借助C語言的scanf函數(shù)讀取用戶在終端的命令,然后調用system函數(shù)來執(zhí)行對應的命令。 如果你的開發(fā)環(huán)境不是Windows10 1903和Visual Studio 2019,可以刪除#define _CRT_SECURE_NO_WARNINGS。 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>/* 使用system函數(shù)調用各大操作系統(tǒng)的命令 @author liuguanglei ittimelinedotnet@gmail.com @website ittimeline.net @version 2019/10/17*/int main(int argc, char* argv[]){ // 提示用戶輸入執(zhí)行的命令 printf('請輸入需要執(zhí)行的命令\n'); //定義字符串保存用戶輸入命令 char command[100] = {0}; //讀取用戶從鍵盤輸入的命令字符串,并保存到command中 scanf('%s',command); //執(zhí)行命令 system(command); system('pause'); return 0;} 因為system函數(shù)位于stdlib.h頭文件中,意味著它是一個可以跨平臺使用的函數(shù)。例如在Ubuntu下使用gedit命令調用文本編輯器 但是各大操作系統(tǒng)的命令和應用程序是不相同的,例如在Windows上使用system函數(shù)傳遞字符串參數(shù)'notepad'時可以打開記事本,而移植到了類Unix上則無法調用記事本。 system函數(shù)阻止Visual Studio 2019閃退在Visual Studio 2019中運行程序可以通過快捷鍵F5直接運行,也可以通過點擊本地Windows調試器運行。 但是發(fā)現(xiàn)在運行helloworld后程序有閃退現(xiàn)象,即程序運行時打開了終端后立即退出,其原因是程序運行是printf函數(shù)默認輸出數(shù)據(jù)到終端,因此Visual Studio 2019開啟了終端,printf輸出數(shù)據(jù)完成以后,程序遇到return語句并退出,因此終端也會隨之退出,因為彈出終端和退終端的時間非常短,所有感覺有閃退現(xiàn)象。 為了解決這一問題,首先需要在源文件使用#include <stdlib.h>包含標準庫頭文件,然后在main函數(shù)的最后一行加上system('pause'),這樣程序運行時不會立即退出,而是等到用戶輸入任意鍵(一般習慣按回車鍵)才會退出。 解決 helloworld在Visual Studio 2019運行的閃退問題 #include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { printf('Windows10 1903 & Visual Studio 2019 Hello World With C \n'); system('pause'); return 0;} 再次運行程序時,在程序的末尾會輸出一句請按任意鍵繼續(xù)... |
|