我调用的是一个在MATLAB中使用Cygwin编译的C可执行文件,使用unix()
函数。这很好,我可以在MATLAB命令窗口中看到所需的输出。但是,可执行文件中有一个fprintf(),它应该创建并写入一个不运行的文本文件-不创建这样的文件。当我直接通过Cygwin运行可执行文件时,文本文件创建得很好。
我想知道是否需要授予对MATLAB文件/可执行文件的权限才能启用它?我该怎么办?
最佳答案
您使用什么路径创建文件?它可能是被创造出来的——只是不是你想象中的那样。
如果是相对路径,可以在C程序中使用getcwd(2)
来获取和打印工作目录(或者,使用getpid(2)
来获取PID,然后执行ls -d /proc/<pid>/cwd
,这至少可以在Linux上运行)。找到工作目录后,检查文件是否在其中的某个位置。
如果看起来文件真的没有被创建,我的下一步将是在函数中添加一些错误检查,并打印错误消息,试图找出发生了什么。strerror(3)
和perror(3)
可能会派上用场。
关于c - 从MATLAB调用的C .exe文件中存在的fprintf()不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28830161/