成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux的c命令行參數(shù),C命令行參數(shù)

Linux下怎么用C語言實現(xiàn):原樣輸出命令行上所有的參數(shù)?用read/write從終端上讀入并寫回終端?

你說的是APUE上的很經(jīng)典的一個例子

創(chuàng)新互聯(lián)是專業(yè)的吉首網(wǎng)站建設公司,吉首接單;提供成都做網(wǎng)站、成都網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行吉首網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

源代碼如下:

#include stdio.h

#include stdlib.h

#include unistd.h

#define BUFFSIZE 4096

int main(void)

{

int n;

char buf[BUFFSIZE];

while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) 0)

{

if (write(STDOUT_FILENO, buf, n) != n)

{

perror("write error");

exit(1);

}

}

if (n 0)

{

perror("read error");

exit(1);

}

exit(0);

}

較原來的作了少許改動,這種代碼應該能讀懂吧。

Linux C編程,如何將自己的shell執(zhí)行時可以帶一個命令選項或參數(shù)命令行

把 main() 改寫成:

main(int argc,char *argv[])

其中,argc 是參數(shù)的個數(shù)+1,argv[0] 是命令名本身,argv[1] ...... argv[argc-1] 是命令后帶的各個參數(shù)構(gòu)成的字符串。 你使用自編程序作為命令時,在命令名后跟的多參數(shù)是以空格分割的,如果某個參數(shù)本身就帶空格,必須用引號把它引起來。

在程序中訪問 argv[1] ...... argv[argc-1] 就可以訪問到你下命令時輸入的各個參數(shù)。

linux 中 -C是什么意思?

-c :建立一個壓縮文件的參數(shù)指令(create 的意思)

首先介紹一個名詞“控制臺(console)”,它就是我們通常見到的使用字符操作界面的人機接口,例如dos。我們說控制臺命令,就是指通過字符界面輸入的可以操作系統(tǒng)的命令,例如dos命令就是控制臺命令。

我們現(xiàn)在要了解的是基于Linux操作系統(tǒng)的基本控制臺命令。有一點一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)對大小寫是敏感的,也就是說,如果你輸入的命令大小寫不對的話,系統(tǒng)是不會做出你期望的響應的。

擴展資料:

-x :解開一個壓縮文件的參數(shù)指令!

-t :查看 tarfile 里面的文件!

特別注意,在參數(shù)的下達中, c/x/t 僅能存在一個!不可同時存在!

因為不可能同時壓縮與解壓縮。

-z :是否同時具有 gzip 的屬性?亦即是否需要用 gzip 壓縮?

-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?

-v :壓縮的過程中顯示文件!這個常用,但不建議用在背景執(zhí)行過程!

參考資料來源:百度百科-linux命令

求 linux下 c++高手,命令行傳參數(shù)的題,

GNU/Linux的命令行選項有兩種類型:短選項和長選項,前者以 '-' 作為前導符,后者以 '--' 作為前導符

。比如有一個命令:

$ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt

在GNU/Linux系統(tǒng),對這種情況的一種合理解釋是:

a是短選項,帶一個參數(shù)vv;

add是長選項,無參數(shù);

b是短選項,無參數(shù);

file是長選項,帶一個參數(shù)a.txt;

b.txt是參數(shù);

-是參數(shù),通常表示標準輸入,stdin;

--是一個指示符,表明停止掃描參數(shù),其后所有部分都是參數(shù),而不是選項;

-e是參數(shù);

c.txt是參數(shù)

為了簡化程序設計,有幾個庫函數(shù)可以優(yōu)雅地分析命令行參數(shù),原型如下:

#include unistd.h

int getopt(int argc, char * const argv[],

const char *optstring);

extern char *optarg;

extern int optind, opterr, optopt;

#define _GNU_SOURCE

#include getopt.h

int getopt_long(int argc, char * const argv[],

const char *optstring,

const struct option *longopts, int *longindex);

int getopt_long_only(int argc, char * const argv[],

const char *optstring,

const struct option *longopts, int *longindex);

我們先看看用于分析短參數(shù)的getopt函數(shù)。參數(shù)含義如下:

argc, argv是從main函數(shù)獲取的參數(shù),原樣傳給getopt;

optstring指示如何分析參數(shù)。

關(guān)于optstring,還有幾點說明:

如果選項帶參數(shù),該選項后接冒號,比如上例中optstring為"a:b",指示a帶參數(shù),b沒有參數(shù);

如果選項帶可選參數(shù),該選項后接兩個冒號,比如"a::b",表明a可能有參數(shù),也可能沒有;

如果optstring的開頭字符為':',表明如果指明選項帶參數(shù),而實際命令行沒有參數(shù)時,getopt返回':'而不是'?'(默認情況下返回'?',和無法識別的參數(shù)返回一樣);

如果optstring的開頭字符為'+',表明一但遇到一個無選項參數(shù),馬上停止掃描,隨后的部分當作參數(shù)來解釋;

如果optstring的開頭字符為'-',表明如果遇到無選項參數(shù),則把它當作選項1(不是字符'1')的參數(shù)

該函數(shù)每解析完一個選項,就返回該選項字符。

如果選項帶參數(shù),參數(shù)保存在optarg中。如果選項帶可選參數(shù),而實際無參數(shù)時,optarg為NULL。

當遇到一個不在optstring指明的選項時,返回字符‘?’。如果在optstring指明某選項帶參數(shù)而實際沒有參數(shù)時,返回字符‘?’或者字符‘:’,視optstring的第一個字符而定。這兩種情況選項的實際值被保存在optopt中。

當解析錯誤時,如果opterr為1則自動打印一條錯誤消息(默認),否則不打印。

當解析完成時,返回-1。

每當解析完一個argv,optind就會遞增。如果遇到無選項參數(shù),getopt默認會把該參數(shù)調(diào)后一位,接著解析下一個參數(shù)。如果解析完成后還有無選項的參數(shù),則optind指示的是第一個無選項參數(shù)在argv中的索引。

函數(shù)getopt_long()的工作方式類似于getopt(),不過它還能接收長選項。在接收長選項之前,我們必須定義個一個結(jié)構(gòu)體數(shù)組變量longopts,指明我們希望獲取的長選項。

struct option {

const char *name;

int has_arg;

int *flag;

int val;

};

含義如下:

name指明長選項的名稱;

has_arg指明該選項是否帶參數(shù),1為是,0為否,2為可選;

flag指明長選項如何返回,如果flag為NULL,則getopt_long返回val。否則返回0,flag指向一個值為val的變量。如果該長選項沒有發(fā)現(xiàn),flag保持不變;

val指明返回的值,或者需要加載到被flag所指示的變量中。

option數(shù)組的最后一個元素必須全部填充0.

getopt_long的最后一個參數(shù)longindex在函數(shù)返回時指向被搜索到的選項在longopts數(shù)組中的下標。longindex可以為NULL,表明不需要返回這個值。

getopt_long_only類似于getopt_long,但是它把'-'開頭的選項當作長選項來處理。如果該選項與長選項不匹配,而與短選項匹配,則可以作為短選項解析。

在短選項找到的時候,getopt_long和getopt_long_only的表現(xiàn)和getopt一樣。如果長選項找到了,如果flag為 NULL,返回val,否則返回0。錯誤情況的處理和getopt一樣,只是返回'?'時還可能是別的情況引起的:選項含糊不明確或者無關(guān)參數(shù)。

我們拿Linux手冊的一個例子來說事。

#include stdio.h /* for printf */

#include stdlib.h /* for exit */

#include getopt.h

int

main (int argc, char **argv) {

int c;

int digit_optind = 0;

while (1) {

int this_option_optind = optind ? optind : 1;

int option_index = 0;

static struct option long_options[] = {

{"add", 1, 0, 0},

{"append", 0, 0, 0},

{"delete", 1, 0, 0},

{"verbose", 0, 0, 0},

{"create", 1, 0, ’c’},

{"file", 1, 0, 0},

{0, 0, 0, 0}

};

c = getopt_long (argc, argv, "abc:d:012",

long_options, option_index);

if (c == -1)

break;

switch (c) {

case 0:

printf ("option %s", long_options[option_index].name);

if (optarg)

printf (" with arg %s", optarg);

printf ("\n");

break;

case ’0’:

case ’1’:

case ’2’:

if (digit_optind != 0 digit_optind != this_option_optind)

printf ("digits occur in two different argv-elements.\n");

digit_optind = this_option_optind;

printf ("option %c\n", c);

break;

case ’a’:

printf ("option a\n");

break;

case ’b’:

printf ("option b\n");

break;

case ’c’:

printf ("option c with value ‘%s’\n", optarg);

break;

case ’d’:

printf ("option d with value ‘%s’\n", optarg);

break;

case ’?’:

break;

default:

printf ("?? getopt returned character code 0%o ??\n", c);

}

}

if (optind argc) {

printf ("non-option ARGV-elements: ");

while (optind argc)

printf ("%s ", argv[optind++]);

printf ("\n");

}

exit (0);

}

我們用digit_optind和this_option_optind來跟蹤選項012是否在一起,比如選項 -012 和-0 -1 -2 的optind情況是不一樣的,前者返回0、1、2時optind相同,而后者optind的值依次大1。

希望你能看懂。。。

linux下運行c語言程序,命令行參數(shù)后面加'&',什么意思?比如 ./a port&

表示后臺,系統(tǒng)不等程序的結(jié)束,直接返回接受下一條命令。

網(wǎng)站名稱:linux的c命令行參數(shù),C命令行參數(shù)
文章路徑:http://jinyejixie.com/article14/hsigde.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、微信小程序、網(wǎng)站營銷、商城網(wǎng)站、企業(yè)網(wǎng)站制作、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
建宁县| 武乡县| 昭通市| 赤水市| 东丰县| 龙州县| 松桃| 郧西县| 且末县| 阿合奇县| 北安市| 漳州市| 深州市| 东丽区| 延安市| 夏邑县| 宜黄县| 眉山市| 穆棱市| 怀来县| 昌都县| 周口市| 曲周县| 晋城| 兴义市| 怀仁县| 福贡县| 三门峡市| 尉氏县| 赫章县| 武邑县| 彰武县| 大邑县| 斗六市| 灵石县| 舟山市| 辰溪县| 绵阳市| 赫章县| 宣威市| 弥渡县|