0
내 프로그램에서 리눅스에서 strace
을 실행하려고했습니다. 나는 두 개의 라인에 약간의 오차가 얻을 왜strace 출력 문제 해결
brk(0) = 0x804b000
brk(0x806c000) = 0x806c000
open("test.txt", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0600, st_size=216, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7728000
read(3, "10\n10\n2\t3\t3\t5\t4\t7\t7\t2\t2\t7\t\n8\t3\t1"..., 4096) = 216
read(3, "", 4096) = 0
read(3, "", 4096) = 0
close(3) = 0
munmap(0xb7728000, 4096) = 0
**open(NULL, O_RDONLY) = -1 EFAULT (Bad address)**
dup(2) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fstat64(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7728000
**_llseek(3, 0, 0xbfc97a44, SEEK_CUR) = -1 ESPIPE (Illegal seek)**
write(3, "Can't open file!: Bad address\n", 30Can't open file!: Bad address
: 여기
은 예제 출력입니다. 무엇**open(NULL, O_RDONLY)**
그것은 무엇을 의미합니까?
RTFM :'man 2 open' =) –
이름이 NULL 인 파일을 여는 중입니다. 적어도 변수를 포함하는 파일 이름은 NULL입니다. –