2010-09-24 45 views
-2

我想知道cp命令是如何執行的,我的意思是它從最頂層流向內核,然後再返回?它的流程是什麼,當我們寫cp命令時發生了什麼以及它是如何發生的?請詳細說明。Linux中「cp」命令的流程圖

@所有 其reallu急,我知道這一點,所以請提前回復儘快

感謝,

新手

+2

其不客氣的說,我想答案儘快。 – 2011-07-08 07:46:57

回答

0

你也許可以下載源代碼。如果你有一些Debian的:

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

我建議你在cp命令做了strace,如:

$ strace cp foo bar 

這種方式,你會看到所有的system callscp命令所做的。 CP前

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