V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
aheadlead
V2EX  ›  问与答

现有一个开机自启动的控制台程序,如何重定向其输入输出使得可以被别的程序访问

  •  
  •   aheadlead · 2015-02-01 14:19:38 +08:00 · 1956 次点击
    这是一个创建于 3576 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如说,这个控制台程序是 Python 。但是我的程序是开机自启动且不能随意 kill 的。

    我想在另外一个程序(执行完了就会退出,不会执行很久)里面模拟键盘在 Python 里面输入:
    >>> print 2**10
    并且要能读取返回的结果“1024”。

    如何实现。感谢。

    系统 linux
    语言 python c php都可以
    4 条回复    2015-02-01 20:51:28 +08:00
    clino
        1
    clino  
       2015-02-01 14:43:19 +08:00 via Android   ❤️ 1
    用 socket 不是更合适吗?
    aheadlead
        2
    aheadlead  
    OP
       2015-02-01 14:51:09 +08:00
    @clino 觉着似乎麻烦了...那个控制台程序我不能修改..
    clino
        3
    clino  
       2015-02-01 15:58:20 +08:00   ❤️ 1
    @aheadlead 那比如用python,你可以用 subprocess 调用, 这样可以取到子进程的 stdin/stdout/stderr, 这样可以把 socket 收到的数据写入 stdin ,把输出也通过 socket 输出,这样就可以用其他程序来模拟输入并得到结果了

    当然这样开机启动的程序就要改成控制的这个了
    aheadlead
        4
    aheadlead  
    OP
       2015-02-01 20:51:28 +08:00 via iPhone
    @clino 感谢。我之前也想到了这个方法,但是想得到更简单的方法..
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1186 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:41 · PVG 02:41 · LAX 10:41 · JFK 13:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.