그래서이 연습 문제로 어려움을 겪었습니다. 내가 선택한 임의의 주어진 리눅스 명령 (I.E.ls 또는 cd)에 의해 만들어진 시스템 호출을 가져 와서 .txt 파일로 나열하고 그 고유 ID를 그 옆에 나열해야한다.시스템 호출 ID를 가져와 .txt 파일 (LINUX)에 저장하십시오.
지금까지 여기에 내가 가진 무엇 : 리눅스 쉘에서 실행될 때
strace -o filename.txt ls
나에게 ls 명령의 모든 시스템 호출을 포함하는 "파일 이름 .txt"파일을 제공이. 이제 내 C 스크립트 :
#include <stdio.h>
#include <stdlib.h>
int main(){
system("strace -o filename.txt ls");
return 0;
}
이 이전 코드와 동일해야하지만, 코드가 성공적으로 컴파일하지만 그것은 나에게 아무것도 반환 아니에요. 어떻게 고쳐서 ID를 얻는거야? 나는 "stdlib"라이브러리를 사용하고 있습니다. 왜냐하면 제 조사에서 시스템 호출 ID와 관련이 있지만 발견 방법을 알지 못했기 때문입니다. 기본적으로 내가 만든 파일을 읽고 각 시스템에 ID를 호출하도록해야합니다.
자신의 프로그램에서 셸 명령을 실행하면 어떤 점이 있습니까? C에서 그렇게 할 것을 요청 받았다면 [man ptrace] (http://man7.org/linux/man-pages/man2/ptrace.2.html) –
을보아야합니다. 1) C는 없습니다. 스크립팅 언어. 2) @FelixPalmen이 옳다. 그것은 말이되지 않는다. – Olaf