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