91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初識C程序與Linux交互

發布時間:2020-05-16 09:37:27 來源:網絡 閱讀:300 作者:byhan 欄目:編程語言


Linux下程序的返回值

要開發能在Linux下運行的C程序工具,對C程序與Linux的基本交互方式的認識是必不可少的。

首先需要了解到,在Linux終端中,程序的運行都會有一個返回值,若該返回值是0,則代表該程序運行成功,若返回值是其他數值,則表示該程序的運行出錯了,而這個數值一般是代表其錯誤碼。

使用echo $?命令可以查看上一條命令執行后返回的值。

ls
cworkspace  Documents  Music     Public     Videos
Desktop     Downloads  Pictures  Templates
echo $?
0

另外還需要了解到的是 && 的使用:

命令一 && 命令二

只有當命令一成功運行了,即返回值為0的時候,命令二才會被執行。因此這也是判斷命令執行是否成功的一種方式。

C程序的返回值

一般情況下,我們在編寫C的main函數的時候,都習慣在結尾返回一個0。其實這也是為了表示程序的成功運行,也就是說,如果程序運行有錯,我們可以返回除了0以外的其他數值。

C的返回值就是C程序與Linux進行交互的方式之一。

當我們對C程序成功編譯后,得到了可執行程序,執行該可執行程序會得到一個返回值,可以使用以上方式進行查看。

實驗如下:

創建一個C程序命名為main.c:

#include <stdio.h>

int main()
{
   printf("successful\n");
   return 0;
}

編譯執行并列出目錄下的文件:


gcc main.c -o main.out && ./main.out && ls

執行結果:

successfulmain.c  main.out

修改main.c代碼:


#include <stdio.h>

int main()
{
   printf("failed\n");
   return 1;
}

使用同樣的命令執行:


gcc main.c -o main.out && ./main.out && ls

結果:

failed

顯然,由于返回值為1,因此ls命令沒有被執行。

C程序 main() 函數的參數

事實上,C的入口函數main的完×××式是有兩個參數的:


int main(int argv, char* argc[])
{
return 0;
}

其中,第一個參數argv表示的是執行該程序時傳入的參數個數,第二個參數則保存了執行該程序時傳入的參數。

例如,將main.c修改如下:


#include <stdio.h>

int main(int argv, char* argc[])
{
   printf("argv is %d\n", argv);
   int i;
   for(i=0; i<argv; i++){
       printf("argc[%d] is %s\n", i, argc[i]);
   }
   return 0;
}

執行:


gcc main.c -o main.out && ./main.out && ls

結果:

argv is 1argc[0] is ./main.outmain.c  main.out

顯然,程序成功執行,傳入的參數有一個,即執行可執行文件main.out的命令。

此時,若隨意傳入幾個參數:


./main.out second third && ls

結果:

argv is 3argc[0] is ./main.outargc[1] is secondargc[2] is thirdmain.c  main.out

總結

在Linux下,程序的運行一般都會有一個返回值,返回0則說明該程序運行成功,可以使用echo $?命令查看,或使用&&驗證。因此,C程序可以使用返回值與Linux交互。另外,C程序的main函數的完整原型是int main(int argv, char* argc[]),可以用來接收對C程序傳入的參數。

了解這些知識是使用C開發Linux小工具的基礎。





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博白县| 衡阳市| 乡城县| 株洲县| 永福县| 庆城县| 彭山县| 海南省| 泰宁县| 方山县| 嘉义县| 镇远县| 漠河县| 顺义区| 万源市| 闻喜县| 会同县| 二手房| 德化县| 商洛市| 特克斯县| 汾西县| 禹州市| 凭祥市| 鹤山市| 子长县| 永靖县| 达州市| 许昌县| 方山县| 玛沁县| 加查县| 浏阳市| 来安县| 化德县| 昌宁县| 从化市| 乌拉特前旗| 乌鲁木齐市| 北流市| 海晏县|