execl()은 자기가 따로 만든 코드로 프로세스를 실행하지 못하나요??
글쓴이: shlaurant / 작성시간: 일, 2015/06/14 - 8:22오후
안녕하세요
온라인으로 보드게임 한번 직접 코딩해서 해보려고 이것저것 뒤적이다 질문드립니다.
서버쪽의 프로세스가 클라이언트로 부터 새 게임 생성 요청을 받으면 따로 컴파일 해둔 코드를 실행시키게 하려고 하는데요(게임과 관련된 연산을 실행하는)
//생략 pid = fork(); if (pid == 0) { execl("/home/ubuntu/server/LC/admin/admin","home/ubuntu/server/LC/admin/admin", (char*)i, NULL); printf("cannot be executed\n"); } //생략
서버쪽 코드 중간에 이런 내용이 들어가는데 실행시키면 cannot be executed 라는 문장밖에 볼수가 없더군요;;
admin.c는 테스트용 코드인데 이렇게 생겼습니다.
//헤더파일 생략 int main(int argc, char *argv[]) { int mid = argv[1]; printf("hi from child\n"); printf("%d\n", mid); return 0; }
}
저 mid는 메세지 큐를 이용하려고 넣어놓은건데 hi from child도 못보고있으니.....
execl로 불가능하다면 무엇을 이용하면 좋을까요??
답변주시면 감사하겠습니다.
Forums:
execl 바로 다음 줄에 perror()를 넣어서,
execl 바로 다음 줄에 perror()를 넣어서, 일단 execl 이 왜 실패했는지부터 살펴보시죠.
i 가 아무렇게나 정수값을 넣은 변수라면 그게 인자로 들어가면서 문제가 될 것 같습니다만.
좋은 하루 되세요!
두번째 인자가 문제 아닐까요?
execl 함수 두번째인자가 맨앞에 /가 빠진거 같은데.. .그문제 아닐까요?
댓글 달기