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- No such file or directory
此外,指定所有内容的路径,相同的错误。
感谢您的任何建议,谢谢。
答案 0 :(得分:5)
来自您关联的system()
上的文档:
ENOENT 找不到命令解释器。
所以问题不在于它找不到tail.exe,问题在于它无法找到命令解释器。这表明更大的事情是错误的。我们需要更多信息来诊断真正的问题。同样来自同一页:
系统函数将命令传递给 命令解释器,哪个 将字符串作为一个执行 操作系统命令。系统 指的是COMSPEC和PATH 定位的环境变量 命令解释器文件(文件 在Windows NT和Windows中命名为CMD.EXE 后来)。如果命令为NULL,则 功能只是检查是否 命令解释器存在。
这表明有两种调查途径:system(NULL)
返回什么?当程序运行时,COMSPEC
和PATH
环境变量的值是什么?
答案 1 :(得分:1)
您可以尝试使用system(“cmd tail -500 log.txt”) - 这在某些Windows框中是必需的。