일부 시스템 호출로 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 ...) 작동하지만 할 수 있습니다. 열지 마세요 (* target ..)
로 변경:
if(argc==3)
{
strcpy(source, argv[1]);
strcpy(target, argv[2]);
}
또한의 위험에 대해 읽고 strcpy
고려하십시오 strncpy
.
그러나 사용 strcpy
하면 적어도 시작할 수 있습니다 ...
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다