我使用unix()
函数在MATLAB中调用使用Cygwin编译的C可执行文件。这很好用,我可以在MATLAB命令窗口看到所需的输出。但是,可执行文件中有一个fprintf(),它应该创建并写入一个不运行的文本文件 - 不会创建这样的文件。当我直接通过Cygwin运行可执行文件时,文本文件创建得很好。
我想知道是否需要授予MATLAB文件/可执行文件的权限才能启用此功能?我怎么能这样做?
答案 0 :(得分:2)
您使用什么路径创建文件?它可能已经创建 - 只是没有你想象的那样。
如果它是相对路径,您可以在C程序中使用getcwd(2)
来获取并打印工作目录(或者例如getpid(2)
以获取PID,然后执行ls -d /proc/<pid>/cwd
},至少可以在Linux上运行)。获得工作目录后,检查文件是否在某处。
如果文件看起来真的没有被创建,我的下一步就是为函数添加一些错误检查并打印错误信息以试图找出正在发生的事情。 strerror(3)
和perror(3)
可能派上用场。