導航:首頁 > 程序命令 > c99命令

c99命令

發布時間:2023-05-08 03:48:43

『壹』 c語言命令行參數如何運行

1、命令行參數是保存在argv[]里的。argc只是說參數的個數。命令行參數一般是從argv[1]開始(包括argv[1])argv[0]是程序的名字。在輸命令的時候,命令行參數之間用空格隔開。
2、比如:

#include<stdio.h>
intmain(intargc,char*argv[])
{
if(argc<2)
{
printf("youmustinputargs!");
return0;
}
if(strcmp(argv[1],"help")==0)
{
printf("此程序參數如下: ");
printf("-c提示是否確定。 ");
printf("-d跳過警告,直接刪除。 ");
printf("exit為退出。");
return0;
}
elseif(strcmp(argv[1],"-c")==0)
{
//此處省略N行你的代碼
}
return0;
}

如果編譯出來的程序名字叫 test.exe,那麼在命令行下輸入 test.ext help後就會列印
此程序參數如下:
-c 提示是否確定。
-d 跳過警告,直接刪除。
exit為退出。

『貳』 c語言 退出整個程序或函數的命令是什麼

c語言退出整個程序或函數的命令是return、goto 、break 、break。

1、return 返回;

return 表示從被調用函數返回主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數設定。

2、goto 無條件跳轉;

goto語句也稱作無條件轉移語句,其一般格式為goto語句標號:其中語句標號是按照標識符規定書寫的符號,放在某一行語句行的前面,標號後加冒號(:)。

3、break 調處最近一層塊;

大多數情況下是終止上一層的循環,C語言中break在switch中執行一條case後跳出語句的作用 使程序跳出switch執行switch以後的語句 如果沒有break switch會從滿足條件的地方執行到switch結構結束。

(2)c99命令擴展閱讀

break語句使用

示例:

#include <stdio.h>

void main()

{

int x=1;

while(x<=4)

{

printf("x=%d ",x);

if (x==3)

{

break;

}

x++;

}

}

『叄』 c語言指令有哪些啊

第一章:緒論?
內核版本號格式:x.y.zz-www/x為主版本號,y為次版本號,zz為次次版本號,www為發行號/次版本號改變說明內核有重大變革,其偶數為穩定版本,奇數為尚在開發中的版本

第二章:基礎?
文件種類:-:txt,二進制/d:目錄/l:鏈接文件(link)/b:區塊設備文件/c:字元設備文件/p:管道
目錄結構:bin:可執行/boot:開機引導/dev:設備文件/etc:系統配置文件/lib:庫文件/mnt:設備掛載點/var:系統日誌/
命令:rmdir:刪除空目錄/find [path] [expression]/touch命令還可以修改指定文件的最近一次訪問時間/tar -czvf usr.tar.gz path/tar –zxvf usr.tar.gz/tar –cjvf usr.tar.bz2 path/tar –jxvf usr.tar.bz2
gcc:預處理:-g/I在頭文件搜索路徑中添加目錄,L在庫文件搜索路徑中
gdb:設置斷點:b/查看斷點信息:info
Makefile:make –f other_makefile/<:第一個依賴文件的名稱/@:目標文件的完整名稱/^:所有不重復的依賴文件/+:所有依賴文件(可能重復)

第三章:文件IO
read:read(fd, temp, size); /讀fd中長度為size的值到temp/返回0表示file為NULL
write:write(fd, buf, buf_size); /寫長度為buf_size的buf內容到fd中
lseek:lseek(fd, offset, SEEK_SET); /從文件開頭向後增加offset個位移量
unlink:從文件系統中刪除一個名字
open1:int open(const char * pathname, int flags, mode_t mode);/flags為讀寫方式/mode為許可權設置/O_EXCL:測試文件是否存在/O_TRUNC:若存在同名文件則刪除之並新建
open2:注意O_NONBLOCK
mmap.1:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize);
mmap.2:mmap(start_addr, flength, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
fcntl:上鎖/int fcntl(int fd, int cmd, struct flock * lock);/對誰;做什麼;設置所做內容
select:fd_max+1,回傳讀狀況,回傳寫狀況,回傳異常,select等待的時間/NULL為永遠等待/0為從不等待/凡需某狀況則用之,反則(fd_set *)NULL之
FD_*那幾個函數……
一般出錯則返回-1

第四章:文件與目錄
硬鏈接與符號鏈接?
chdir改變目錄
0:in/1:out/2:err

第五章:內存管理
可執行文件存儲時:代碼區、數據區和未初始化區
棧:by編譯器,向低址擴展,連續,效率高/堆:by程序員
/etc/syslog.conf,系統log記錄文件/優先順序為-20時最高

第六章:進程和信號
程序代碼、數據、變數、文件描述符和環境/init的pid為1
execl族:int execl(const char * path, const char * arg, ....);/path即可執行文件的路徑,一般為./最後一個參數以NULL結束
waitpid:waitpid(pid_t pid,int * status,int options);/option:一般用WNOHANG,沒有已經結束的子進程則馬上返回,不等待
kill:int kill(pid_t pid,int sig);/發送信號sig給pid
void (*signal(int signum, void(* handler)(int)))(int);/第一個參數被滿足時,執行handler/第一個參數常用:SIG_IGN:忽略信號/SIG_DFL:恢復默認信號

第七章:線程
sem_init(sem_t *sem, int pshared, unsigned int value)/pshared為0/value即初始值

第八章:管道
1:write/0:read

第九章:信號量、共享內存和消息隊列
臨界資源:操作系統中只允許一個進程訪問的資源/臨界區:訪問臨界資源的那段代碼
信號量:建立聯系(semget),然後初始化,PV操作,最後destroy
共享內存沒有提供同步機制

第十章:套接字
UDP:無連接協議,無主客端的區分/實時性
TCP:位元組流/數據可靠性/網路可靠性
數據報:SOCK_STREAM/SOCK_DGRAM

其它
管道一章的both_pipe即父子進程間的全雙工管道通訊
關繫到信號和互斥的伺服器-客戶端程序
線程一章的class的multi_thread文件夾下的thread8.c

int main(void)
{
int data_processed;
int file_pipes_1[2];
int file_pipes_2[2];
char buffer[BUFSIZ + 1];
const char some_data[] = "123";
const char ch2p[] = "this is the string from child to the parent!";
const char p2ch[] = "this is the string from parent to the child!";
pid_t fork_result;
memset(buffer,'\0',sizeof(buffer));

if(pipe(file_pipes_1) == 0){

if(pipe(file_pipes_2) == 0){

fork_result = fork();
switch(fork_result){
case -1:
perror("fork error");
exit(EXIT_FAILURE);
case 0://child
close(file_pipes_1[1]);
close(file_pipes_2[0]);
printf("in the child!\n");

read(file_pipes_1[0],buffer, BUFSIZ);
printf("in the child, read_result is \"%s\"\n",buffer);

write(file_pipes_2[1],ch2p, sizeof(ch2p));
printf("in the child, write_result is \"%s\"\n",ch2p);
exit(EXIT_SUCCESS);
default://parent
close(file_pipes_1[0]);
close(file_pipes_2[1]);
printf("in the parent!\n");

write(file_pipes_1[1], p2ch, sizeof(p2ch));
printf("in the parent, write_result is \"%s\"\n",p2ch);

read(file_pipes_2[0],buffer, BUFSIZ);
printf("in the parent, read_result is \"%s\"\n",buffer);

exit(EXIT_SUCCESS);
}
}
}
}

#ifndef DBG
#define DBG
#endif

#undef DBG
#ifdef DBG
#define PRINTF(fmt, args...) printf("file->%s line->%d: " \
fmt, __FILE__, __LINE__, ##args)
#else
#define PRINTF(fmt, args...) do{}while(0);
#endif

int main(void)
{
PRINTF("%s\n", "hello!");
fprintf(stdout, "hello hust!\n");
return 0;
}

#define N 5
#define MAX 5

int nput = 0;
char buf[MAX][50];
char *buffer = "";
char buf_r[100];
sem_t mutex,full,avail;

void *proctor(void *arg);
void *consumer(void *arg);
int i = 0;

int main(int argc, char **argv)
{
int cnt = -1;
int ret;
int nput = 0;

pthread_t id_proce[10];
pthread_t id_consume;

ret = sem_init(&mutex, 0, 1);

ret = sem_init(&avail, 0, N);

ret = sem_init(&full, 0, 0);

for(cnt = 0; cnt < 6; cnt ++ ){
//pthread_create(&id_proce[cnt], NULL, (void *)proctor, &cnt);
pthread_create(&id_proce[cnt], NULL, (void *)proctor, (void *)cnt);
}
pthread_create(&id_consume, NULL, (void *)consumer, NULL);

for(cnt = 0; cnt < 6; cnt ++){
pthread_join(id_proce[cnt], NULL);
}
pthread_join(id_consume,NULL);

sem_destroy(&mutex);
sem_destroy(&avail);
sem_destroy(&full);
exit(EXIT_SUCCESS);
}
void *proctor(void *arg)
{
while(1){
sem_wait(&avail);
sem_wait(&mutex);
if(nput >= MAX * 3){
sem_post(&avail);
//sem_post(&full);
sem_post(&mutex);
return NULL;
}

sscanf(buffer + nput, "%s", buf[nput % MAX]);
//printf("write[%d] \"%s\" to the buffer[%d]\n", (*(int*)arg), buf[nput % MAX],nput % MAX);
printf("write[%d] \"%s\" to the buffer[%d]\n", (int)arg, buf[nput % MAX],nput % MAX);
nput ++;
printf("nput = %d\n", nput);

sem_post(&mutex);
sem_post(&full);
}
return NULL;
}

void *consumer(void *arg)
{
int nolock = 0;
int ret, nread, i;
for(i = 0; i < MAX * 3; i++)
{
sem_wait(&full);
sem_wait(&mutex);

memset(buf_r, 0, sizeof(buf_r));
strncpy(buf_r, buf[i % MAX], sizeof(buf[i % MAX]));
printf("read \"%s\" from the buffer[%d]\n\n",buf_r, i % MAX);

sem_post(&mutex);
sem_post(&avail);
//sleep(1);
}
return NULL;
}

『肆』 C語言指令大全

看書,肯定找不到的。

C語言,那有什麼指令!

指令,是匯編語言的說法。

C語言,有:語句、關鍵字...

『伍』 C語言命令行參數問題

只能是這樣的逗襲啊
agrc 表示參數尺指察的個數
agrv 裡面存放的詳細的信息
agrv [0]表示程序的名稱和路徑
agrv[1]表示這個程序陵茄的第一個參數
agrv[2]表示的是這個程序的第二個參數
以此類推

『陸』 C語言命令行解析

不是的。
你可以網路下「getopt函數 windows」

『柒』 C語言命令行參數

int main(int argc, char * argv[])

{

.....

}

argc: 代表啟動程序時,命令行參數的個數。C和C++語言規定,可執行程序程序本身的文件名,也算是一個命令行參數,因此,argc的值至少是1.

argv[]:指針數組,其中的每個元素都是一個char* 類型的指針,該指針指向一個字元串,這個字元串里就存放著命令行參數。

例如,argv[0]指向的字元串就是第一個命令行參數,即可執行程序的文件名,argv[1]指向第二個命令行參數,argv[2]指向第三個命令行參數....。

#include <stdio.h>

int main( int argc, char * argv[])

{

int i;

for ( i = 0;i < argc; i++)

{

printf("%s ",argv[i]);

}

return 0;

}

windows下,將上面的程序編譯成sample.exe,然後在控制台窗口敲:

sample para1 para2 s.txt 5 "hello world"

上面有6個參數,雙引號為了包含空格作為一個參數。

輸出結果:

sample

para1

para2

s.txt

5

hello world

(7)c99命令擴展閱讀:

main函數通常含有參數argc和argv,寫法通常如下:

int main(int argc,char *argv[])

int main(int argc,char **argv)

程序:

#include<stdio.h>

int main(int argc,char *argv[])

{

int i;

for(i=0;i<argc;i++)

printf("第 %d 個參數是 %s ",i+1,argv[i]);

return 0;

}

『捌』 Linux下如何使GCC支持C99標准。如果要動手設置,說一下步驟,如果需要在終端寫命令,麻煩把完整的命令寫下

加上 -std=c99
gcc -std=c99 tset.c -o test

『玖』 c語言中預處理命令都有哪些

我們可以在C源程序中插入傳給編譯程序的各中指令,這些指令被稱為預處理器指令,它們擴充了程序設計的環境。現把常用的預處理命令總結如下: x0dx0a1. 預處理程序x0dx0a按照ANSI標準的定義,預處理程序應該處理以下指令:x0dx0a#if #ifdef #ifndef #else #elifx0dx0a#endifx0dx0a#definex0dx0a#undefx0dx0a#linex0dx0a#errorx0dx0a#pragmax0dx0a#includex0dx0a顯然,上態李族述所有的12個預處理指令都以符號#開始,,每條預處理指令必須獨佔一行。x0dx0a2. #definex0dx0a#define指令定義一個標識符和一個串(也就是字元集),在源程序中發現該標識符時,都用該串替換之。這種標識符稱為宏名字,相應的替換稱為宏代換。一般形式如下:x0dx0a#define macro-name char-sequencex0dx0a這種語句不用分號結尾。宏名字和串之間可以有多個空白符,但串開始後只能以新行終止。x0dx0a例如:我們使用LEFT代表1,用RIGHT代表0,我們使用兩個#define指令:x0dx0a#define LEFT 1x0dx0a#define RIGHT 0x0dx0a每當在源程序中遇到LEFT或RIGHT時,編譯程序都用1或0替換。x0dx0a定義一個宏名字之後,可以在其他宏定義中使用,例如:x0dx0a#define ONE 1x0dx0a#define TWO ONE+ONEx0dx0a#define THREE ONE+TWOx0dx0a宏代換就是用相關的串替代標識符。因此,如果希望定義一條標准錯誤信息時,可以如下定義:x0dx0a#define ERROR_MS 「Standard error on input \n」x0dx0a如果一個串長於一行,可在行尾用反斜線」\」續行,如下:x0dx0a#define LONG_STRING 「This is a very very long \x0dx0aString that is used as an example」x0dx0a3. #errorx0dx0a#error指令強制編譯程序停止編譯,它主要用於程序調試。#error指令的一般形式是:x0dx0a#error error-messagex0dx0a注意,宏串error-message不用雙引號包圍。遇到#error指令時,錯誤信息被顯示,可能同時還顯示編譯程序作者預先定義的其他內容。x0dx0a4. #includex0dx0a程序中的#include指令要求編譯程序讀入另一個源文件。被讀入文件的名字必須用雙引號(「」)或一對尖括弧(<>)包圍,例如:x0dx0a#include 「stdio.h」x0dx0a#include x0dx0a都使C編譯程序讀入並編譯頭文件帆弊以用於I/O系統庫函數。x0dx0a包含文件中可以包含其他#include指令,稱為嵌套包含。允許的最大嵌套深度隨編譯器而變。x0dx0a文件名被雙括弧或尖括弧包圍決定了對指定文件的搜索方式。文件名被尖括弧包圍時,搜索按編譯程序作者的定義進行,一般用於搜索某些專門放置包含文件的特殊目錄。當文件名被雙括弧包圍時,搜索按編譯程序實時的規定進行,一般搜索當前目錄。如未發現,再按尖括弧包圍時的辦法重新搜索一次。x0dx0a通常,絕大多數程序員使用尖括弧包圍標準的頭文件,雙引號用於包圍與當前程序相關的文件名。x0dx0ax0dx0a5. 條件編譯指令x0dx0a若干編譯指令允許程序員有選擇的編譯程序源代碼的不同部分,這種過程稱為條件編譯。x0dx0a5.1#if、#else、#elif #endifx0dx0a條件編譯指令中最常用的或許是#if,#else,#elif和#endif。這些指令允擾檔許程序員根據常數表達式的結果有條件的包圍部分代碼。x0dx0a#if的一般形式是:x0dx0a#if constant-expressionx0dx0aStatement sequencex0dx0a#endifx0dx0a如#if後的常數表達式為真,則#if和#endif中間的代碼被編譯,否則忽略該代碼段。#endif標記#if塊的結束。x0dx0a#else指令的作用與C語言的else相似,#if指令失敗時它可以作為備選指令。例如:x0dx0a#include x0dx0a#define MAX 100x0dx0aInt main(void)x0dx0a{x0dx0a#if MAX>99x0dx0aprintf(「Compiled for array greater than 99.\n」);x0dx0a#elsex0dx0aprintf(「Complied for small array.\n」);x0dx0a#endifx0dx0areturn 0;x0dx0a}x0dx0a注意,#else既是標記#if塊的結束,也標記#else塊的開始。因為每個#if只能寫一個#endif匹配。x0dx0a#elif指令的意思是「否則,如果」,為多重編譯選擇建立一條if-else-if(如果-否則-如果鏈)。如果#if表達式為真,該代碼塊被編譯,不測試其他#elif表達式。否則,序列中的下一塊被測試,如果成功則編譯之。一般形式如下:x0dx0a#if expressionx0dx0aStatement sequencex0dx0a#elif expression1x0dx0aStatement sequencex0dx0a#elif expression2x0dx0aStatement sequencex0dx0a.x0dx0a.x0dx0a.x0dx0a#elif expressionx0dx0aStatement sequencex0dx0a#endifx0dx0a5.2#ifdef和#ifndefx0dx0a條件編譯的另一個方法是使用編譯指令#ifdef和#ifndef,分別表示「如果已定義」和「如果未定義」。#ifdef的一般形式如下:x0dx0a#ifdef macro-namex0dx0aStatement sequencex0dx0a#endifx0dx0a如果macro-name原先已經被一個#define語句定義,則編譯其中的代碼塊。x0dx0a#ifndef的一般形式是:x0dx0a#ifndef macro-namex0dx0aStatement sequencex0dx0a#endifx0dx0a如果macro-name當前未被#define語句定義,則編譯其中的代碼塊。x0dx0ax0dx0a我認為,用這種,可以很方便的開啟/關閉整個程序的某項特定功能。x0dx0a#ifdef和#ifndef都可以使用#else或#elif語句。x0dx0a#inlucde x0dx0a#define T 10x0dx0aInt main(void)x0dx0a{x0dx0a#ifdef tx0dx0aPrintf(「Hi T\n」);x0dx0a#elsex0dx0aPrintf(「Hi anyone\n」);x0dx0a#endifx0dx0a#ifndef Mx0dx0aPrintf(「M Not Defined\n」);x0dx0a#endifx0dx0aReturn 0;x0dx0a}x0dx0a6. #undefx0dx0a#undef指令刪除前面定義的宏名字。也就是說,它「不定義」宏。一般形式為:x0dx0a#undef macro-namex0dx0a7. 使用definedx0dx0a除#ifdef之外,還有另外一種確定是否定義宏名字的方法,即可以將#if指令與defined編譯時操作符一起使用。defined操作符的一般形式如下:x0dx0adefined macro-namex0dx0a如果macro-name是當前定義的,則表達式為真,否則為假。x0dx0a例如,確定宏MY是否定義,可以使用下列兩種預處理命令之一:x0dx0a#if defined MYx0dx0a或x0dx0a#ifdef MYx0dx0a也可以在defined之前加上感嘆號」!」來反轉相應的條件。例如,只有在DEBUG未定義的情況下才編譯。x0dx0a#if !defined DEBUGx0dx0aPrintf(「Final Version!\n」);x0dx0a#endifx0dx0a使用defined的一個原因是,它允許由#elif語句確定的宏名字存在。x0dx0a8. #linex0dx0a#line指令改變__LINE__和__FILE__的內容。__LINE__和__FILE__都是編譯程序中預定義的標識符。標識符__LINE__的內容是當前被編譯代碼行的行號,__FILE__的內容是當前被編譯源文件的文件名。#line的一般形式是:x0dx0a#line number 「filename」x0dx0a其中,number是正整數並變成__LINE__的新值;可選的「filename」是合法文件標識符並變成__FILE__的新值。#line主要用於調試和特殊應用。x0dx0ax0dx0a9. #pragmax0dx0a#pragma是編譯程序實現時定義的指令,它允許由此向編譯程序傳入各種指令。例如,一個編譯程序可能具有支持跟蹤程序執行的選項,此時可以用#pragma語句選擇該功能。編譯程序忽略其不支持的#pragma選項。#pragma提高C源程序對編譯程序的可移植性。x0dx0a10. 預處理操作符#和##x0dx0a有兩個預處理操作符:#和##,它們可以在#define中使用。x0dx0a操作符#通常稱為字元串化的操作符,它把其後的串變成用雙引號包圍的串。例如:x0dx0a#include x0dx0a#define mkstr(s) #sx0dx0aint main(void)x0dx0a{x0dx0aPrintf(mkstr(I like C));x0dx0aReturn 0;x0dx0a}x0dx0a預處理程序把以下的語句:x0dx0aPrintf(mkstr(I like C));x0dx0a變成x0dx0aPrintf(「I like C」);x0dx0a操作符##把兩個標記拼在一起,形成一個新標記。例如:x0dx0a#include x0dx0a#define concat(a,a) a##bx0dx0aint main(void)x0dx0a{x0dx0aInt xy = 10;x0dx0aPrintf(「%d」,concat(x,y));x0dx0aReturn 0;x0dx0a}x0dx0a預處理程序把以下語句:x0dx0aPrintf(「%d」,concat(x,y));x0dx0a變成x0dx0aPrintf(「%d」,xy);x0dx0a操作符#和##主要作用是允許預處理程序對付某些特殊情況,多數程序中並不需要。x0dx0a11. 預定義宏x0dx0aC規范了5個固有的預定義宏,它們是:x0dx0a__LINE__x0dx0a__FILE__x0dx0a__DATE__x0dx0a__TIME__x0dx0a__STDC__x0dx0a__LINE__和__FILE__包含正在編譯的程序的行號和文件名。x0dx0a__DATE__和內容形如month/day/year(月/日/年)的串,代表源文件翻譯成目標碼的日期。x0dx0a__TIME__中的串代表源代碼編譯成目標碼的時間,形如hour:minute:second(時:分:秒)x0dx0a如果__STDC__的內容是十進制常數1,則表示編譯程序的實現符合標准C。

『拾』 關於C語言的輸出命令

有意思,我也不懂。
不過定義為int,輸出為%f這樣的錯誤還是不要犯。

閱讀全文

與c99命令相關的資料

熱點內容
雲伺服器服務模型架構 瀏覽:899
刪文件夾什麼指令 瀏覽:507
極速抖音已加密怎麼辦 瀏覽:601
matlab拉格朗日演算法框圖 瀏覽:428
華為公司計算機視覺演算法顧問 瀏覽:252
夏老師講的單片機 瀏覽:296
在編程中如何將圖片放大 瀏覽:161
appstore怎麼看是否付費 瀏覽:603
程序員和碩士 瀏覽:951
gcc編譯消耗內存過多 瀏覽:281
昌邑網站製作源碼 瀏覽:127
單片機的反向編譯 瀏覽:463
subsample演算法 瀏覽:899
蘋果免費看書app哪個最好 瀏覽:885
c語言加密怎麼弄 瀏覽:842
c語言編譯的錯誤提示 瀏覽:767
驗機蘋果app哪個最好 瀏覽:666
光遇國際服安卓如何購買禮包 瀏覽:55
163app怎麼下載 瀏覽:247
電腦程序員下場 瀏覽:45