开发者

flowchart of "cp" command in linux [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.

Want to improve this question? Update the question so it focuses on one problem only by editing this post.

Closed 3 years ago.

开发者_StackOverflow中文版 Improve this question

I want to know how does cp command get executed. I mean its flow from top most layer to kernel and back again? What is its flow? What happens when we write cp command and how it happens? please tell it in detail.


foo.c contents before cp:

this is foo

strace cp foo.c bar.c gave me this:

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)                           = ?


I would suggest you do a strace on a cp command like:

$ strace cp foo bar

This way you'll see all the system calls made by the cp command.


you could probably download the sources. If you have some debian:

#this will tell you what package cp comes from
dpkg -S "$(which cp)"
apt-get source the_package_name_here
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜