专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Linux/Unix

关于Linux下C语言程序的交互式进程管理,该怎么处理

发布时间:2011-06-27 17:41:31 文章来源:www.iduyao.cn 采编人员:星星草
关于Linux下C语言程序的交互式进程管理
大家好:
  最近在写一个小项目时遇到了一个进程管理的问题。忘高手指教~~
  是这样的:例如我使用system("su");来在命令行中使用su命令,那么运行程序后系统会提示我输入root密码(因为我运行了su)。但是这时候我似乎无法在我的程序中继续控制我启动的su这一交互式进程,比如通过我的C程序实现自动输入密码。请问如何管理进程才能实现继续控制我启动的交互式程序呢?比如输入用户名密码什么的?
  望不吝赐教~~有代码就更好了~~~~

------解决方案--------------------
使用expect脚本实现你的需求
------解决方案--------------------
su 调用了getpass, getpass会确保从终端读入而不是从管道读入,所以一般是不能自动输入密码的,所以需要利用expect脚本工具。
这里是getpass的源码:
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/gen/readpassphrase.c?rev=1.1;content-type=text%2Fx-cvsweb-markup
------解决方案--------------------
lz的要求应该可以通过伪终端实现,完全模拟终端输入..
我曾经使用伪终端调用sftp命令
看看APUE中,伪终端一章,有现成的例子
------解决方案--------------------
楼主可以试一下execl 函数族。
execl可以执行脚本,你在脚本里面可以实现自动输入用户名和密码的功能

另外 后台这个程序 需要的用户名和密码可以通过参数来传递,可能需要改一下这个后台程序的代码
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: