c - 编写 C 程序在 Linux 上创建一个 1 MB 的文件并出现段错误

标签 c linux stdio

我正在尝试为 Linux 编写一个简单的 C 程序,它将生成一个 1 MB 的文件,但我无法让这段代码工作。当我尝试运行它时,我收到了一条段错误消息,但我不确定哪里出错了。不过,我确实有一种预感,那就是 fseek:

#include <stdio.h>

int main(int argc, char *argv[])
{
    FILE *fp;
    fp = fopen(argv[0], "w");
    fseek(fp, 1000000 - 1, SEEK_SET);
    fputc('\0', fp);
    return 0;
}

谁能指出我正确的方向?

最佳答案

argv[0] 是您的二进制文件的名称。你想使用 argv[1] 作为你的文件名。

关于c - 编写 C 程序在 Linux 上创建一个 1 MB 的文件并出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097843/

相关文章:

c - If 语句检查用户是否输入了有效的双数

c - 不同的进程是否有单独的共享静态变量副本或公共(public)副本?

linux - GUI 工具包如何与 Linux 上的窗口管理器通信?

linux - 如何列出目录中的所有文件并将结果导出到文本文件?

c++ - 覆盖c库文件函数?

c - K&R 练习 1-23

c++ - getopt 无法检测到选项的缺失参数

c - 为什么串口要设置 'no terminal should control the process'选项?

c - 将 fpirntf() 添加到 xnu 内核 tcp_xxx.c,找不到 stdio.h

char* 指向文字字符串(在源代码中硬连线)可以吗?