c語言執行linux
⑴ 求一個c語言寫的運行在linux下的程序。
#include<stdio.h>
#include<stdlib.h>
int main(){
printf("ON\n");
sleep(60);
system("clear");
printf("OFF\n");
return 0;
}
⑵ Linux的終端怎麼運行C語言
打開終端
然後VI環境下編譯運行
一.
常用編譯命令選項
假設源程序文件名為test.c。
1.
無選項編譯鏈接
用法:#gcc
test.c
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件。這里未指定輸出文件,默認輸出為a.out。
2.
選項
-o
用法:#gcc
test.c
-o
test
作用:將test.c預處理、匯編、編譯並鏈接形成可執行文件test。-o選項用來指定輸出文件的文件名。
3.
選項
-E
用法:#gcc
-E
test.c
-o
test.i
⑶ c語言能使用linux命令嗎
c語言可以在linux下執行。
Linux下使用最廣泛的C/C++編譯器是GCC,大多數的Linux發行版本都默認安裝,不管是開發人員還是初學者,一般都將GCC作為Linux下首選的編譯工具。
GCC(GNU Compiler Collection,GNU編譯器集合),是一套由 GNU 開發的編程語言編譯器。
⑷ 如何在C語言編程中調用linux系統終端下的命令
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」);
}
執行 -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shadow
⑸ 我想在linux下寫一個c程序調用linux的可執行文件或者程序,怎麼做
Linux中啟動另一個可執行文件或程序用system函數最理想了,這個函數將在你編寫的那個程序的內部啟動另一個程序,從而創建一個新進程,並等待這個進程執行完畢退出。如果正常執行,system函數將返回被執行程序的退出碼;如果無法運行這個程序,將返回錯誤代碼127;如果是其他錯誤,返回-1。這個函數的原型是:
#include <stdlib.h>
int system(const char *string);
參數string是將要執行的程序的命令字元串。
還有一種執行外部程序的方法是exec系列函數,但這個系列的函數都是將當前進程的替換成新進程,也就是說原來的進程不存在了。
⑹ Linux中,運行一個C語言程序如何運行
1、打開kali linux的終端。創建一個文件並命名為test.c。在終端輸入:touch test.c。
⑺ 在Linux系統中,如何運行一個C語言程序
1、打開kali linux的終端。創建一個文件並命名為test.c。在終端輸入:touch test.c。
⑻ linux下怎樣用c語言調用shell命令
可以通過system函數,調用shell命令。
1 函數原型:
int system(const char *cmd);
2 功能:
調用cmd內容的系統命令,即shell命令。回
3 頭文件:
stdlib.h
4 舉例:
system("ls");
列印答當前工作目錄下的文件。
⑼ 如何在C語言中執行shell命令
題主可以使用 exec 系列函數。這系列函數定義在 unistd.h 頭文件中,所以使用前請包含這個頭文件。這系列函數共有五個,
execl,execlp,execv,execvp,execle
其中常用的是前四個。前四個函數的原型為:
intexecl(constchar*path,constchar*arg,...);
intexeclp(constchar*file,constchar*arg,...);
intexecv(constchar*path,char*constargv[]);
intexecvp(constchar*file,char*constargv[]);
這四個函數的主要差別就在於參數的類型和用不用輸入命令的絕對路徑上。
以路徑形式來分,凡是函數名中帶 p 的(execlp,execvp)都只需要提供命令的名,函數會自動在當前的環境變數 $PATH 中查找命令的路徑。而不帶 p 的(execl,execv)必須要提供命令的絕對路徑,否則函數會找不到這個命令的位置。這里以 execl 和 execlp 為例,以下運行
ls-l
命令的代碼:
#include<stdio.h>
#include<unistd.h>
intmain(){
//exec系列函數出錯時會返回-1,平常返回0,所以可以
//據此來列印錯誤信息
//第一個ls是命令的名稱,execlp函數會自動在$PATH
//中尋找這個命令。
//後面一個ls是要在shell中輸入的第一個參數
//(也就是命令名稱本身)
//使用NULL作為參數結尾標記是exec系列函數的要求。
if(execlp("ls","ls","-l",NULL)==-1)
perror("ErrorExecutingCommand. ");
return0;
}
在 shell 中運行這個 C 程序會輸出
Main process is still running 這句話就會被輸出到屏幕上。
⑽ c語言可以在linux下執行嗎
抄c語言可以在linux下執行。
Linux下使用最廣泛的C/C++編譯器是GCC,大多數的Linux發行版本都默認安裝,不管是開發人員還是初學者,一般都將GCC作為Linux下首選的編譯工具。
GCC(GNU Compiler Collection,GNU編譯器集合),是一套由 GNU 開發的編程語言編譯器。