이 execl
문에는 어떤 오류가있을 수 있습니까? 인수에도 불구하고execl이 모든 인수를 캡처하지 않음
argv[1] = -1076146944
argv[2] = 0
구성 :
numJoeysStr = 6
randomNumSeedStr = 7
execl("/path/to/executable", "numJoeysStr", "randNumSeedStr", (char *)0);
내가 그것을 실행하려고하면, 수신 실행 파일은
argc
내가 ARGV 내용을 인쇄 할 때, 나는 다음과 같은 얻을 덜 3.보다 불평
FWIW, (char *) 0 대신에 NULL을 시도했습니다. 그것은 차이를 만들지 않았습니다.
크리스 광대 - 젊은 내 가장 큰 문제를 해결하지만, 지금은 두 번 기능에 배치 한 후 다음 얻을 :
argv[1] = -1075725068
argv[2] = -1075725056
내가 역 참조 시도
을 수행하여 :
printf("argv[1] = %d\n", *argv[1]);
printf("argv[2] = %d\n", *argv[2]);
하기 만받을 수 다음
argv[1] = 110
argv[2] = 114
내가 기대하는 경우 :
,536,argv[1] = 6
argv[2] = 7
마지막 문제는 인용 부호없이 execl
에 변수를 전달하면 예상 한 숫자가됩니다. 나는 어쨌든 모든 execl
인수 (마지막을 제외하고)가 따옴표 안에 있어야한다는 인상 아래에 있었고 심지어 변수들이었습니다.
왜 문자열 대신 정수로 인수를 인쇄합니까? – immibis
아 맞다! 내가 strtol()을 시도하자 – user1185790
나는 편집하기 전에 그것을 논평했다. 새로운 문제는 원하는 문자가 아닌 첫 번째 문자의 ASCII 값을 인쇄한다는 것입니다. (그리고 네,'strtol'은 숫자의 10 진수 형식을 실제 숫자로 변환합니다.) – immibis