有没有办法用gdb的相对路径进行fopen?

塞卢比

我正在尝试使用相对路径执行fopen()。该代码很简单:

#include <stdio.h>
#include <stdlib.h>


int main (void){

    char filename[FILENAME_MAX]="test.txt";
    FILE *fin;
    if ((fin=fopen(filename,"r"))==NULL)
    {
        printf("File not found.");
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("opened!");
    }
    
    return 0;

}

我尝试了2种方法:

  1. 用gcc编译代码,然后用./a运行它
  2. 使用gdb构建并在vscode上运行,设置完全来自https://medium.com/@GorvGoyl/run-debug-intellisense-cc-in-vscode-within-5-minutes-3ed956e059d6

我尝试将文件名更改为几件事,结果如下:

char filename[FILENAME_MAX]="test.txt";

gcc:已开启!

gdb:找不到文件

char filename[FILENAME_MAX]=".\\test.txt";

gcc:已开启!

gdb:找不到文件

char filename[FILENAME_MAX]="C:\\fullfolderpath\\test.txt";

gcc:已开启!

gdb:已打开!

有没有一种方法可以在使用gdb时以相对路径打开txt文件?文件将与源代码和编译后的程序存储在同一目录中。

巴西勒·斯塔林凯维奇

fopen(3)失败,至少要使用perror(3),当然还要阅读这些函数的文档

所以代码:

if ((fin=fopen(filename,"r"))==NULL)
{
    perror(filename);
    printf("File not found.\n");
    exit(EXIT_FAILURE);
}

在使用前请阅读printf(3)exit(3)的文档

当然,也请阅读GCCGDB的文档

我建议foo.cgcc -Wall -Wextra -g foo.c -o foo

在Linux上,还可以考虑使用strace(1)(当然也可以阅读syscalls(2) ...)来了解程序的行为。

如果您使用其他操作系统或编译器,请阅读编译器和操作系统的文档对于Windows,请参考WinAPI

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

NumPy:有没有办法对ndarray进行“移位”?

传递相对路径到fopen()

C ++ fopen相对路径

有什么办法可以在conf文件中放置相对路径?

如何使atomic-typescript识别没有相对路径的模块?

Uri构造函数在没有UriKind的情况下抛出相对路径异常

有没有办法使用Automapper进行映射

没有相对路径的动态导入模块

有没有办法用C中的多个变量对结构进行排序?

有没有办法完全禁用gdb输出?

有没有办法进行连锁的PayPal付款?

有没有办法进行多色边框

有没有办法进行多行输入?

有没有办法让父div用CSS中子内容的大小进行调整?

在没有符号链接的情况下将相对路径转换为绝对路径

有没有办法用sed进行多次替换,而不用链接替换项?

有没有办法用C#确认进行ftp上传?

如何使用Inkscape将SVG导出为没有相对路径的图像的PDF?

相对路径readFile错误ENOENT:没有这样的文件

在 Jsx 中将 backgroundImage 设置为没有相对路径的样式

使用具有相对路径的文件进行 Visual Studio 单元测试

php在没有相对路径的绝对url中转换包含相对路径的绝对URL

有没有办法在 Visual Studio 的“命令行参数”启动选项中使用相对路径?

有没有办法用 ILSpy 进行自动反编译?

使用没有相对路径的 CMake 创建 Zip

有没有办法在树中找到路径?

有没有办法更快地进行循环

有没有办法用熊猫在 2D 中进行插值?

有没有办法用 if else 语句对此进行编码并获得类似的结果?