我想知道cp
命令是如何执行的,我的意思是它从最顶层到内核然后再返回?什么是它的流程,当我们写cp
命令时发生了什么以及它是如何发生的?请详细说明。
@ all 我真的很想知道这一点,所以请尽快回复
提前感谢,
新手
答案 0 :(得分:1)
答案 1 :(得分:1)
foo.c
内容:
this is foo
strace cp foo.c bar.c
给了我这个:
execve("/bin/cp", ["cp", "foo.c", "bar.c"], [/* 58 vars */]) = 0
//several calls to open, fstat64, mmap2, close
open("foo.c", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0664, st_size=12, ...}) = 0
open("bar.c", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0664) = 4
fstat64(4, {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
read(3, "this is foo\n", 32768) = 12
write(4, "this is foo\n", 12) = 12
read(3, "", 32768) = 0
close(4) = 0
close(3) = 0
close(0) = 0 // close stdin
close(1) = 0 // close stdout
close(2) = 0 // close stderr
exit_group(0) = ?
答案 2 :(得分:0)
你可以下载资源。如果你有一些debian:
#this will tell you what package cp comes from
dpkg -S "$(which cp)"
apt-get source the_package_name_here