我调用的是一个在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/

10-11 23:06
查看更多