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

请教一个 curl 返回值的问题,返回值太大

  •  
  •   shenxgan · 2019-02-22 10:43:21 +08:00 · 1672 次点击
    这是一个创建于 2109 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用 python2
    exitcode, output = commands.getstatusoutput(cmd)
    发现 exitcode 有 8960/7168 这几个值;根据 man page https://curl.haxx.se/docs/manpage.html 中的记录,exitcode 目前最大值是 92 ;上网搜索了一下,只搜到这个
    https://lost-contact.mit.edu/afs/ific.uv.es/project/atlas/software/ganga_old/install/4.4.10/reports/latest/html/coverage/summary/GangaAtlas/DQCurl.py.html
    发现,8960=35*(2**8); 7168=28*(2*8); 都是小 code 左移 8 位就得到大 code。肯定有不可告人的秘密,有人知道咋回事吗?
    4 条回复    2019-02-25 14:39:42 +08:00
    ysc3839
        1
    ysc3839  
       2019-02-22 14:40:30 +08:00 via Android   ❤️ 1
    先查 Python 文档 https://docs.python.org/2/library/commands.html#commands.getstatusoutput
    有写 The exit status for the command can be interpreted according to the rules for the C function wait().

    再查 Linux man https://linux.die.net/man/2/wait
    If status is not NULL, wait() and waitpid() store status information in the int to which it points. This integer can be inspected with the following macros (which take the integer itself as an argument, not a pointer to it, as is done in wait() and waitpid()!):

    下面有写
    WEXITSTATUS(status)
    returns the exit status of the child. This consists of the least significant 8 bits of the status argument that the child specified in a call to exit(3) or _exit(2) or as the argument for a return statement in main(). This macro should only be employed if WIFEXITED returned true.
    shenxgan
        2
    shenxgan  
    OP
       2019-02-22 16:21:38 +08:00
    @ysc3839 不是很懂
    ysc3839
        3
    ysc3839  
       2019-02-22 17:43:51 +08:00 via Android   ❤️ 1
    @shenxgan 先用 WIFEXITED 判断是否是正常退出,是的话用 WEXITSTATUS 获取返回值。
    Python 有内置这两个函数 https://docs.python.org/2/library/os.html#os.WIFEXITED
    shenxgan
        4
    shenxgan  
    OP
       2019-02-25 14:39:42 +08:00
    @ysc3839 谢谢解惑,再次感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2601 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:14 · PVG 11:14 · LAX 19:14 · JFK 22:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.