Linux C 语言的 unistd.h 中的 sync()和 Linux 命令行中 sync 功效一样吗?
資深大佬 : ReputationZh 3
应该是差不多的,我才 sync 命令执行时就是调 sync()系统调用。你可以执行以下 strace sync 跟踪一下系统调用,就知道 sync 命令到底干了什么了:
[email protected]:~$ strace sync
execve(“/usr/bin/sync”, [“sync”], 0x7ffe44037610 /* 30 vars */) = 0
brk(NULL) = 0x55d3c942f000
arch_prctl(0x3001 /* ARCH_??? */, 0x7fff9667d0b0) = -1 EINVAL (Invalid argument)
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=26487, …}) = 0
mmap(NULL, 26487, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7ff948082000
close(3) = 0
openat(AT_FDCWD, “/lib/x86_64-linux-gnu/libc.so.6”, O_RDONLY|O_CLOEXEC) = 3
read(3, “177ELF2113 3 >