【发布时间】:2015-10-07 21:55:14
【问题描述】:
我正在使用 I2C 协议将 BeagleBoneBlack 与 IMU 连接起来。我已经在控制台中很好地读取了数据,但是当我尝试将数据存储在 .txt 文件中时,它返回错误:分段错误。
int I2C_open()
{
int file;
char *dev = "/dev/i2c-1";
if ((file=open(dev,O_RDWR))<0);
{
perror("Abrir el canal");
}
return file;
}
int main()
{
archivo=I2C_open();
f=fopen("./home/debian/Desktop/Comunicacion/Prueba.txt","W");
fprintf(f,"Datos leidos del sensor");
}
这只是代码的一部分,因为它很大。当我使用 fprintf 时出现问题,当我评论该行代码运行良好时。我不确定是否是因为我在“/dev/i2c-1”运行时使用了 fopen。请帮忙
【问题讨论】:
-
您是否包含了正确的头文件?当
-Wall被传递给它时,gcc会说什么?当你对它运行strace时,错误出现在哪里? -
fopen()中的文件名是相对路径。路径存在吗?你检查fopen()是否返回非NULL文件描述? -
我刚刚检查过,'fopen()' 返回一个 NULL 文件。我的头文件是'#include
#include #include #include #include #include #include #include ' -
fopen()returnNULL因为它无法在不存在的目录中创建文件。在指定文件时使用完整路径而不是相对路径。或者不指定路径,文件将在当前工作目录中创建。
标签: c