代码之家  ›  专栏  ›  技术社区  ›  Lapsio

GNU netcat退出代码始终为1?

  •  2
  • Lapsio  · 技术社区  · 7 年前

    我试图在脚本中使用netcat的GNU变体,但它 总是 即使一切正常,也返回退出代码1。以下是我的案例:

    1. nc -l 127.0.0.1 -p 7000
    2. nc 127.0.0.1 7000
    3. 在客户端nc上按ctrl+c
    4. 服务器nc始终返回1

    它使我无法检测bash脚本中的套接字绑定错误。确切地说,它是来自Arch linux的GNU netcat。当使用地址时,用于Arch的BSD netcat不会在套接字绑定错误时失败,所以也没有太大的改进。。。

    1 回复  |  直到 7 年前
        1
  •  4
  •   blue112    7 年前

    在看了GNU Netcat源代码之后,我有一个坏消息要告诉你。。。

    int c, glob_ret = EXIT_FAILURE;
    

    变量 glob_ret 设置为 EXIT_FAILURE (1) 并且仅在端口扫描模式或隧道模式中更改。该变量未设置为侦听模式,因此程序将始终以1代码退出。

    你可以看看netcat。c源文件: https://pastebin.com/fh66BPgg (功能 main )