блок-схема команды "cp" в linux - PullRequest
       1

блок-схема команды "cp" в linux

0 голосов
/ 24 сентября 2010

Я хочу знать, как выполняется команда cp, я имею в виду ее поток от самого верхнего уровня к ядру и обратно?каков его поток, что происходит, когда мы пишем команду cp и как это происходит?пожалуйста, расскажите об этом подробнее.

@ все это очень важно, чтобы я знал это, поэтому, пожалуйста, ответьте КАК МОЖНО СКОРЕЕ

заранее спасибо,

новичок

Ответы [ 3 ]

1 голос
/ 01 октября 2010

Я бы посоветовал вам сделать strace для команды cp, например:

$ strace cp foo bar

Таким образом, вы увидите все system calls, сделанные командой cp.

1 голос
/ 01 октября 2010

foo.c содержимое до cp:

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)                           = ?
0 голосов
/ 01 октября 2010

Вы могли бы, вероятно, загрузить источники.Если у вас есть какой-нибудь Debian:

#this will tell you what package cp comes from
dpkg -S "$(which cp)"
apt-get source the_package_name_here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...