我在OS X程序中使用wordexp进行命令行解析,无论我为输入字符串传递什么,它总是返回WRDE_SYNTAX
。
答案 0 :(得分:1)
wordexp
将始终以WRDE_SYNTAX
失败:signal(SIGCHLD, SIG_IGN)
。图书馆可能在您不知情的情况下这样做。据推测,在OS X上实现wordexp
实际上会生成一个shell作为子进程来进行解析。
解决方案是在signal(SIGCHLD, SIG_DFL)
之前致电wordexp
。您可以在之后恢复signal(SIGCHLD, SIG_IGN)
。