if( system("tail -500 log.txt") == -1) { //Error calling tail.exe on log //errno is a system macro that expands int returning //the last error. strerror() converts the error to it's //corresponding error message. printf("Error calling tail.exe with system(): %s",strerror( errno )); }
System()使用log.txt调用Tail.exe
所有与调用它的可执行文件在同一目录中。
获取错误ENOENT-没有这样的文件或目录
另外,指定一切的path,相同的错误。
任何意见表示赞赏,谢谢。
从您链接的system()
上的文档:
ENOENT命令解释器无法找到。
所以问题不是找不到tail.exe,问题是找不到命令解释器。 这表明,更大的事情出错了。 我们需要更多的信息来诊断真正的问题。 也来自同一页:
系统函数将命令传递给命令解释器,命令解释器将该字符串作为操作系统命令执行。 系统是指定位命令解释程序文件(Windows NT及更高版本中名为CMD.EXE的文件)的COMSPEC和PATH环境变量。 如果command是NULL,那么函数只是检查命令解释器是否存在。
这暗示了一些调查的途径: system(NULL)
返回什么? 当程序运行时, COMSPEC
和PATH
环境变量的值是多少?
你可能会尝试系统(“cmd尾-500 log.txt”) – 这是必要的一些窗口框。