gpt4 book ai didi

如果位置更改,代码会出现错误段错误(核心已转储)

转载 作者:行者123 更新时间:2023-11-30 19:33:59 25 4
gpt4 key购买 nike

我正在尝试通过将某些文本从第 6 个字节更改为第 20 个字节来自定义 type1 字体文件的 header ,如下面的代码中所述。

当前字体文件包含 6-20 字节的文本“%!PS-AdobeFont”,我将其修改为“%!PS-RoughFont”。它工作正常,但是一旦我将此字体文件安装在安装了所有字体的字体文件夹中并运行相同的代码,就会出现错误“段错误(核心转储)

为什么会出现此错误,我的意思是在其他位置工作的相同代码。 P.S 我使用的是 Linux 操作系统。是否与此目录的权限有关,因为它只允许读取权限。

代码

#include <stdio.h>

int main ()
{
FILE *fp;

fp = fopen("/usr/share/fonts/type1/gsfonts/test.pfb","r+");

fseek(fp, 6, 0);
fputs("%!PS-AdobeFont", fp);
fclose(fp);

return(0);
}

最佳答案

您可能没有写入权限。

使用包含错误检查的代码来查看问题所在:

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

int main(void)
{
FILE* fp = fopen("/usr/share/fonts/type1//gsfonts/test.pfb", "r+");
if(!fp)
{
perror("Error");
return EXIT_FAILURE;
}

fseek(fp, 6, 0);
fputs("%!PS-AdobeFont", fp);
fclose(fp);
}

关于如果位置更改,代码会出现错误段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44533872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com