C로 프로그램을 작성하려고합니다 (Linux 64 비트에서 GCC 4.1.2 사용).C 프로그램 종료
int program_instances(char *cmdname)
{
char buf[32], *ret;
char cmdbuf[512];
FILE *cmdpipe;
sprintf(cmdbuf, "/bin/ps -eo comm | /bin/grep -c '%s'",
cmdname);
cmdpipe = popen(cmdbuf, "r");
if (!cmdpipe)
{
return -1;
}
memset(buf, 0, sizeof(buf));
ret = fgets(buf, sizeof(buf), cmdpipe);
pclose(cmdpipe);
if (!ret)
{
return -1;
}
int nr = atoi(buf);
return nr;
}
가 .. gdb를 통해하지만 라인
sprintf(cmdbuf, "/bin/ps -eo comm | /bin/grep -c '%'",cmdname);
을 programm는 아래 라인을 던지고, 위의 선을 넘어되지 후 문제를 디버깅하는 시도
Executing new program: /bin/bash Error in re-setting breakpoint 1: No symbol table is loaded. Use the "file" command. [New process 2437] Executing new program: /bin/ps
우리를 도와주세요 이 문제를 해결하십시오.
cmdname의 시간은 얼마입니까? cmdbuf 끝에서 전속력을 발휘할 수도 있습니다. –
"*이 문제를 해결하는 데 도움주세요 *"- 어떤 문제가 있습니까? GDB의 응답 또는 메시지? –
이것은 C입니다. C++이 아니기 때문에 태그를 추가하면 더 빨리 답변을 얻을 수 있습니다. – 111111