当前位置: 技术问答>linux和unix
请问这两个程序应该怎么同时运行?谢谢!!!
来源: 互联网 发布时间:2015-09-22
本文导语: 我想拷贝一个文件夹/root/jspyth到/home/rock/下,并用进度条来显示总的进度: 文件夹sjpyth总的大小我知道:sizeTotal=600M,已经拷贝过的文件夹大小为sizeComplete: 我想边拷贝文件边显示进度,即 child.fork() if ( fork() != 0 ) ...
我想拷贝一个文件夹/root/jspyth到/home/rock/下,并用进度条来显示总的进度:
文件夹sjpyth总的大小我知道:sizeTotal=600M,已经拷贝过的文件夹大小为sizeComplete:
我想边拷贝文件边显示进度,即
child.fork()
if ( fork() != 0 )
{
/* 父进程执行此命令,拷贝文件到/home/rock中,同时计算此刻拷贝过的文件夹大小sizeComplete */
}
else
{
/* 子进程执行此命令, 根据sizeComplete,由sizeComplete/sizeTotal得到拷贝文件的百分比,以此来设计进度条进度。*/
}
我的问题是在父进程中用的是一条命令cp -R /root/sjpyth /home/rock来拷贝文件,因为是一条命令,所以没有运行完这条命令,父进程不可能返回,于是不可能运行子进程, 请问我想同时运行两个进程应该怎么办,谢谢!
文件夹sjpyth总的大小我知道:sizeTotal=600M,已经拷贝过的文件夹大小为sizeComplete:
我想边拷贝文件边显示进度,即
child.fork()
if ( fork() != 0 )
{
/* 父进程执行此命令,拷贝文件到/home/rock中,同时计算此刻拷贝过的文件夹大小sizeComplete */
}
else
{
/* 子进程执行此命令, 根据sizeComplete,由sizeComplete/sizeTotal得到拷贝文件的百分比,以此来设计进度条进度。*/
}
我的问题是在父进程中用的是一条命令cp -R /root/sjpyth /home/rock来拷贝文件,因为是一条命令,所以没有运行完这条命令,父进程不可能返回,于是不可能运行子进程, 请问我想同时运行两个进程应该怎么办,谢谢!
|
你说的“于是不可能运行子进程”是不正确的,fork以后父子进程就可以一起执行了。
所以你可以在你的else中去根据信息画进度条。
欢迎访问我的个人网站 www.linuxc.net
所以你可以在你的else中去根据信息画进度条。
欢迎访问我的个人网站 www.linuxc.net
|
用fork,然后父,子进程一起执行,不过在rh linux中,要先执行子进程,
|
倒
这一般是打开文件 读写吧?
这一般是打开文件 读写吧?
|
给子进程发送一个信号
欢迎访问我的个人网站 www.linuxc.net
欢迎访问我的个人网站 www.linuxc.net
|
干么要用多进程呢?
你可以这样啊,先计算需要CP 的源文件总大小,然后开始read 及 write 文件,你总是要用到buffer 的,读写完多少个 buffer 后计算一下大约占你的总容量的多少,够1%比列就在cl 下输出一个标志,输100个标志意味完成。
你可以这样啊,先计算需要CP 的源文件总大小,然后开始read 及 write 文件,你总是要用到buffer 的,读写完多少个 buffer 后计算一下大约占你的总容量的多少,够1%比列就在cl 下输出一个标志,输100个标志意味完成。
|
cp -R /root/sjpyth /home/rock 不能直接这样用的
需要read write,不然怎么知道进度啊
主要是实现文件拷贝的进度。
目录的拷贝实际上就是文件的拷贝了
需要read write,不然怎么知道进度啊
主要是实现文件拷贝的进度。
目录的拷贝实际上就是文件的拷贝了
|
d
|
受教