当A,B程序都在不断读入标准输入的时候, 为什么往A标准输入里面输入的数据一定能被A读到,而不是被B读到?

janchin 2012-05-21 05:45:51
rt
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
justkk 2012-05-22
  • 打赏
  • 举报
回复
虽然不同进程的标准输入都是0,但这不是一个东西
两个进程之间的描述符没有可比性

两个进程打开文件后,即使是不同的文件,可能得到的描述符都是3,这两个3之间没有任何关系
qq120848369 2012-05-22
  • 打赏
  • 举报
回复
另外, 如果楼主就是试图多进程并发读一个终端标准输入, 那行为未知。

比如,一个进程,创建5个子进程, 这样5个子进程共享当前终端的标准输入了, 同时读不知道会发生什么。
qq120848369 2012-05-22
  • 打赏
  • 举报
回复
一个终端一个标准输入。
janchin 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

虽然不同进程的标准输入都是0,但这不是一个东西
两个进程之间的描述符没有可比性

两个进程打开文件后,即使是不同的文件,可能得到的描述符都是3,这两个3之间没有任何关系
[/Quote]
哦~明白了~这个是进程全局量~~不是系统全局量。。。唉。。。以前还一直以为是系统全局的。。。谢谢你!
janchin 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

楼主如何做到两个程序同时在前台跑的..
[/Quote]
为啥一定要同时占用终端么?后台进程就不能写入标准输入么?用popen(cmd, “w”)之类的函数。。。既然标准输入只有一个~我同时向标准输入写入数据,有怎么保证这些数据的正确性,而不会相互影响呢?我看标准输入就会进程间相互抢夺的输出。。。
janchin 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

两个程序的标准输入不是同一个终端?
[/Quote]
不是~我的意思是 如果所有程序的标准输入都是0 那么如果很多进程同时读取标准输入, 如果保证读到的就一定是自己的?单cpu下还可能是互斥的但是假设是多CPU呢?
qq120848369 2012-05-21
  • 打赏
  • 举报
回复
楼主如何做到两个程序同时在前台跑的..
justkk 2012-05-21
  • 打赏
  • 举报
回复
两个程序的标准输入不是同一个终端?

1,196

社区成员

发帖
与我相关
我的任务
社区描述
该论坛主要探讨IBM AIX平台的安装、部署、应用开发等话题,并为网友们提供自由交流的平台。
社区管理员
  • IBM AIX社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧