当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 为什么这样不对?
帖子发表于 : 2008-11-04 10:11 

注册: 2008-11-04 10:01
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
:em06
void ProcessToProcess( char *argv[], int k )
{
int fd[2], fd2, fd3;
pid_t childpid;
pipe(fd);
argv[k] = NULL; //��������ֽ���

if( ( childpid = fork() ) == -1 )
{
perror("fork");
exit(1);
}

if( childpid == 0 )
{
close( fd[0] );
fd2 = dup( STDOUT_FILENO );
close( STDOUT_FILENO );
dup2( fd[1], STDOUT_FILENO );
execute_new( argv );
dup2( fd2, STDOUT_FILENO );
close( fd2 );
exit( 0 );
}
else
{
close( fd[1] );
fd3 = dup( STDIN_FILENO );
close( STDIN_FILENO );
dup2( fd[0], STDIN_FILENO );
execute_new( argv[k+1] );
dup2( fd3, STDIN_FILENO );
close( fd3 );
}

}

注释: 是实现像 ls | more 这样的功能。把一个进程的输出当做另一个进程的输入。
结果却什么也没有显示,感觉管道里面没有写进去东西?

ps: 像这种两个进程同时工作的程序,应该怎么样调试,我有的是eclipse。刚开始用ubuntu,什么都不懂,谢谢大家了。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 为什么这样不对?
帖子发表于 : 2008-11-04 12:14 

注册: 2008-11-04 10:01
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
没有人吗?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 为什么这样不对?
帖子发表于 : 2008-11-05 9:55 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
请看清楚这是shell脚本区.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译