簡體   English   中英

C:更改為argc和argv

[英]C: change into argc and argv

我正在使用一些系統調用來處理C程序,並且按如下方式保存變量:

int inhandle,outhandle,bytes,read_while_writing_nhandle;
char source[128],target[128];

現在我的程序提示用戶

printf("enter source file name\n"); 
scanf("%s",source);

如何更改它,以便用戶可以再次鍵入“ run sourceName targetName”,將它們存儲為argv [1]和argv [2]

我還在句柄中使用輸入(目標和源):

inhandle=open(source,O_RDONLY);

我的主要問題是轉換,因為我將目標和源存儲為char。 我可以使用諸如strcpy之類的東西。 如果有人可以幫助我,將不勝感激。 希望這很清楚。 謝謝。

** * ** * ** *編輯:對不起,我可能不夠清楚...

我嘗試做int main(int argc,char * argv []),然后包括:

if(argc==3) 
{ source = argv[1]; target = argv[2]; } 
else{ printf("Syntax error.\n"); 
return -1; 

但是我會遇到轉換錯誤,因為我不能那樣存儲它們。 而且,如果我確實將它們存儲為指針(例如* target = argv [2]),我擔心它們在調用句柄時將無法工作。(例如:outhandle = open(target ...)有效,但是我可以不要打開(*目標..)

使用int main(int argc,char ** argv); 然后將源分配給argv [1],將目標分配給argv [2]

改成:

if(argc==3) 
{
    strcpy(source, argv[1]);
    strcpy(target, argv[2]);
}

另外,請閱讀strcpy的危險,並考慮使用strncpy
但是使用strcpy至少可以讓您入門...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM