通过Linux命令行执行时,可执行文件运行正常 - 调用C System()命令时运行时错误
executable runs okay when executed via linux command line - runtime error when called via c++ system() command
我在Linux中有一个流水模型可执行的模型,该模型在执行后,从许多输入文本文件中读取。当我发现可通过shell执行并执行它(无根)时,一切正常。但是,我正在编写一个需要调用可执行文件的C 程序,因此以为我只是使用System()。当我这样做时,该模型将执行,但随后返回与主要输入文本文件之一关联的"文件终止"运行时错误。我不知道为什么当我通过shell手动执行时,该程序会执行罚款,但是当通过System()命令执行时返回错误。
我猜想没有人会立即知道问题是什么,但我不知道从哪里开始调查。我感谢任何建议。
谢谢!
我的系统命令是:
system("/home/name/SWAT/olentangy/Scenarios/Default/TxtInOut/swat");
我收到的错误是:
forrtl: severe (24): end-of-file during read, unit 23, file /home/name/EO_G/EIGHT/EIGHT/file.cio
Image PC Routine Line Source
swat 0821D03F Unknown Unknown Unknown
swat 0821BD35 Unknown Unknown Unknown
swat 081D78D1 Unknown Unknown Unknown
swat 081ABD66 Unknown Unknown Unknown
swat 081AB621 Unknown Unknown Unknown
swat 081BC9DF Unknown Unknown Unknown
即使swat
的行为可以说是错误的,您仍然可以在父级程序中使用它:
替换此:
system("/home/name/SWAT/olentangy/Scenarios/Default/TxtInOut/swat");
与此:
system("cd /home/name/SWAT/olentangy/Scenarios/Default/TxtInOut && ./swat");
相关文章:
- C++/CLI System.AccessViolation在托管类中调用非托管函数时出现异常
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- System.AccessViolationException 从 C# 调用 c++ 函数
- 通过std::system调用python时出错
- 在linux中,mono调用我的.so-lib返回System.EntryPointNotFoundException
- 使用单独的参数调用"boost::process::system()"时,获取"execv
- 从system()调用G++会返回一个错误
- Java 1.8 本机 System.load 通过 JNI 调用C++产生 TLSv1.如何获取 TLSv1.2?
- 为什么当从面向任何 CPU 的 C# 项目调用此代码时,此代码会引发 System.AccessViolationExc
- 将 Linux system() 调用命令的输出重定向到仅可变的
- 通过 system() 函数调用防止野卡扩展
- 使用System()从CPP程序中调用LN
- 如何在 c++ 代码中的函数中调用 System() 函数
- 在程序中操作"system"调用的结果C++
- c++ system()调用没有正确记录Java返回代码
- 使用c++ STL/Boost而不是system()调用重写这个简单的函数
- system()调用使用不当
- system()调用是邪恶的
- 使用libcurl库与使用system()调用curl
- C++ "system"调用不返回正确的退出代码