我有一个名为fileTest.c的C文件,它只包含这个:
#include <stdio.h>
int main()
{
FILE* file = fopen("test.txt","r");
if (file == NULL) {
printf("file failed to open\n");
}
fclose(file);
return 0;
}
在同一目录中,我有test.txt文件,该文件为空
我这样编译:{{1}}
如果我使用./fileTest在命令行中运行生成的可执行文件,那么一切都工作得很好(没有打印),但是当我尝试通过双击exec文件来运行可执行文件时,我得到“文件无法打开”。我正在使用macOS High Sierra 10.13.3。为什么会这样?
答案 0 :(得分:1)
答案 1 :(得分:0)
以下提议的代码:
fopen()
fopen()
的呼叫成功,则getcwd()
现在建议的代码:
#include <stdio.h>
#include <unistd.h>
int main( void )
{
char pathName[1024];
if( !getcwd( pathName, sizeof( pathName ) )
{
perror( "getcwd failed" );
exit( EXIT_FAILURE );
}
// implied else, getcwd successful
printf( "current working Directory: %s\n", pathName );
FILE* file = fopen("test.txt","r");
if (file == NULL)
{
perror("file failed to open\n");
exit( EXIT_FAILURE );
}
// implied else, fopen successful
printf( "call to fopen successful\n" );
fclose(file);
return 0;
}
但是,它不会影响您为什么双击可执行文件不会导致执行可执行文件的问题。