# APUE-LinuxC **Repository Path**: whc_softHardware/apue-linux-c ## Basic Information - **Project Name**: APUE-LinuxC - **Description**: APUE-LinuxC - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-01 - **Last Updated**: 2023-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # codeRep ## 环境 ## pmap - report memory map of a process ```c #include #include static int i=0; int main() { char* string ="helloworld\n"; int j=0; printf("%d %d %s",i,j,string); getchar(); exit(0); } ``` 使用pmap查看进程影像 ```shell whc@whc-virtual-machine:~/vsCodeProjects/APUE/file_system/fs$ pmap 67276727: ./ccodeenv 000055d8df43a000 4K r-x-- ccodeenv 000055d8df63a000 4K r---- ccodeenv 000055d8df63b000 4K rw--- ccodeenv 000055d8e102c000 132K rw--- [ anon ] 00007f80baa62000 1948K r-x-- libc-2.27.so 00007f80bac49000 2048K ----- libc-2.27.so 00007f80bae49000 16K r---- libc-2.27.so 00007f80bae4d000 8K rw--- libc-2.27.so 00007f80bae4f000 16K rw--- [ anon ] 00007f80bae53000 164K r-x-- ld-2.27.so 00007f80bb061000 8K rw--- [ anon ] 00007f80bb07c000 4K r---- ld-2.27.so 00007f80bb07d000 4K rw--- ld-2.27.so 00007f80bb07e000 4K rw--- [ anon ] 00007ffdc0b48000 132K rw--- [ stack ] 00007ffdc0bd4000 12K r---- [ anon ] 00007ffdc0bd7000 8K r-x-- [ anon ] ffffffffff600000 4K r-x-- [ anon ] total 4520K ``` ## strace - trace system calls and signals ```c #include #include #include int main() { putchar('a'); write(1, "b", 1); putchar('a'); write(1, "b", 1); putchar('a'); write(1, "b", 1); exit(0); } ``` ```shell whc@whc-virtual-machine:~/vsCodeProjects/APUE/io/sysio$ strace ./ab execve("./ab", ["./ab"], 0x7ffd59001ae0 /* 36 vars */) = 0 brk(NULL) = 0x562f69eba000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=100054, ...}) = 0 mmap(NULL, 100054, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff7799f3000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\35\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=2030928, ...}) = 0 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff7799f1000 mmap(NULL, 4131552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7ff7793f2000 mprotect(0x7ff7795d9000, 2097152, PROT_NONE) = 0 mmap(0x7ff7797d9000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7ff7797d9000 mmap(0x7ff7797df000, 15072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7ff7797df000 close(3) = 0 arch_prctl(ARCH_SET_FS, 0x7ff7799f24c0) = 0 mprotect(0x7ff7797d9000, 16384, PROT_READ) = 0 mprotect(0x562f69c58000, 4096, PROT_READ) = 0 mprotect(0x7ff779a0c000, 4096, PROT_READ) = 0 munmap(0x7ff7799f3000, 100054) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0 brk(NULL) = 0x562f69eba000 brk(0x562f69edb000) = 0x562f69edb000 write(1, "b", 1b) = 1 write(1, "b", 1b) = 1 write(1, "b", 1b) = 1 write(1, "aaa", 3aaa) = 3 exit_group(0) = ? +++ exited with 0 +++ ```