[英]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.