繁体   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