2014-10-19 2 views
0

사용자 입력을 받아 파일 이름으로 전달하려고 시도했습니다 execve().const char *를 우회 execve() 요구 사항

나는 실행하고자하는 파일의 경로로 채우기 전에 char* filename에 충분한 메모리를 할당하기 위해 malloc()을 사용합니다. 그러나 이 필요하므로 컴파일되지 않습니다 이것을 우회 할 수있는 방법이 있습니까? 어떤 사람들은 셸에 execve()을 사용하는 것을 보았습니다. 그래서 사용자 정의 char 배열을 전달할 수 있다고 가정합니다.
execvp() 또는 PATH를 자동으로 검색하는 다른 변형을 사용할 수 없습니다.

감사합니다.

+1

나는 그것을 알아 냈다. 그것은 꽤 어리석은 실수였다. 두 번째 인수에서 나는 arg 대신에 arg [0]을 넣었다. 다른 사람을 돕지 않을 것이므로이 게시물을 삭제하십시오. – Hal

답변

2

"execve()const char*이 필요하기 때문에 컴파일되지 않습니다."라는 말은 의미가 없습니다. Const 매개 변수에 항상 const가 아닌 변수를 전달할 수 있습니다. 그래서 당신의 문제는 어딘가에 있어야합니다. 더 많은 코드를 게시하십시오.

+0

네, 당신은 완전히 맞습니다! 나는 12 시간 동안 똑바로 코딩 했으므로 피곤할 것임에 틀림 없다. 두 번째 논의에서 오류가 발생했으며 이는 너무 단순한 실수였습니다. 나는 arg 대신에 arg [0]을 보냈다. 그럼이 질문을 삭제하거나 그대로 둘 수 있습니까? – Hal

+0

이 질문을 삭제할 필요가 없습니다. 그냥이 대답을 받아 들여 이상 :) –

관련 문제