当前位置:  技术问答>linux和unix

如何开启一个进程,并接管所有输入输出?

    来源: 互联网  发布时间:2017-04-21

    本文导语:  比如我有一个程序a,现在我想在a中使用ftp客户端(一个程序,位置在/usr/bin/ftp),它是交互式的,跟mysql客户端差不多。现在我想接管ftp的所有输入输出,即,我向ftp输入命令,ftp执行,并返回结果,跟直接在终端...

比如我有一个程序a,现在我想在a中使用ftp客户端(一个程序,位置在/usr/bin/ftp),它是交互式的,跟mysql客户端差不多。现在我想接管ftp的所有输入输出,即,我向ftp输入命令,ftp执行,并返回结果,跟直接在终端执行ftp的效果完全一样(有什么用呢?由于命令是从a发出的,a是我写的,我可以自动发出命令,达到自动下载上传文件的目的)!

如果我创建套接字,连接ftp服务器,发送命令:USER PASS STOR等,也可以满足我的要求,但麻烦。用ftp客户端相对简单很多。

|

你这个理解我也赞同。stdin和stdout是程序的两个全局变量,为FILE*类型,在程序开始时就会用STDOUT_FILENO和STDIN_FILENO,所以setvbuf是不会在exec后的程序中生效的。
目前我也不知道如何解决。不知道有没有什么办法模拟终端,像shell一样。

|
两个pipe即可。
相关函数pipe, dup2
fork,然后将子进程0,1,2用dup2分别重定向到pipe中,然后exec执行ftp程序。
父进程读写两个pipe的另一端即可。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • mysql开启远程连接(mysql开启远程访问)
  • Mongodb数据库服务的开启与关闭详细介绍
  • windows服务器中检测PHP SSL是否开启以及开启SSL的方法
  • suse11 如何查看防火墙是否关闭,远程桌面是否开启,sshd和vsftpd这些服务是否开启?
  • 呼唤大牛,大牛降临护乎!!!(linux,开启进程问题)
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • 如何查看framebuffer是否已经开启?
  • [高分求图]linux系统,开启后的截图。
  • 用什么命令用来查询某个功能是否开启了?比如是NFS
  • 请问linux的开启服务如何关闭?
  • 请教:防火墙如何正确开启80端口? 谢谢!
  • 高分求解:如何开启LINUX中的telnet服务(23端口)
  • android 如何获取MCC/MNC控制小区广播的开启
  • android实现关闭或开启移动网络数据
  • android开启免提切换功能示例
  • 开启SNMP
  • redhat9 如何开启3D加速啊????
  • 怎么开启我的SSH服务?
  • linux下用什么API去读/改IP、读/改网关、开启/关闭DHCP?
  • fedora8开启telnet服务问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,