C 如何在不使用stdio.h库的情况下读取和写入文件?

C 如何在不使用stdio.h库的情况下读取和写入文件?,c,readfile,C,Readfile,上下文:这是一个关于考试的学习指南的问题 问题:编写一段代码,使用低级Unix I/O系统调用(不是stdio或iostreams)执行以下操作: o打开名为“data.txt”的文件进行读取 o从文件中最多读取512字节到名为buf的数组中 o关闭文件 如果在任何步骤中出现错误,请打印错误消息并退出程序。 包括代码使用的任何变量的定义 我正在linux环境中使用pico IDE,使用c语言。我知道如何使用#include轻松完成这项工作,但我不知道没有它我将如何编写代码。目前我有: #incl

上下文:这是一个关于考试的学习指南的问题

问题:编写一段代码,使用低级Unix I/O系统调用(不是stdio或iostreams)执行以下操作:

o打开名为“data.txt”的文件进行读取

o从文件中最多读取512字节到名为buf的数组中

o关闭文件

如果在任何步骤中出现错误,请打印错误消息并退出程序。 包括代码使用的任何变量的定义

我正在linux环境中使用pico IDE,使用
c
语言。我知道如何使用
#include
轻松完成这项工作,但我不知道没有它我将如何编写代码。目前我有:

#include <stdio.h>

int main()
{
 // File var
 FILE *fileVar;
 char buff[512];

 // Open it
 fileVar = fopen("data.txt", "r");

 // Check for error
 if(fileVar == NULL)
 {
   perror("Error is: ");
 }
 else
 {
   fscanf(fileVar, "%s", buff);
   printf("The file contains:  %s\n", buff);
   fgets(buff, 512, (FILE*)fileVar);
   fclose(fileVar);
 }

}
#包括
int main()
{
//文件变量
文件*fileVar;
字符buff[512];
//打开它
fileVar=fopen(“data.txt”、“r”);
//检查错误
if(fileVar==NULL)
{
perror(“错误为:”);
}
其他的
{
fscanf(fileVar,“%s”,buff);
printf(“文件包含:%s\n”,buff);
fgets(buff,512,(FILE*)fileVar);
fclose(fileVar);
}
}

如果不使用库
#include
,我如何翻译上述代码以使其工作?

问题是使用UNIX低级I/O例程。这些都是在unistd.h中定义的,因此您需要
#include
,然后需要调用其中定义的
open
read
、和
close

问题是使用UNIX低级I/O例程。这些都是在unistd.h中定义的,因此您需要
#包括
,然后需要调用
打开
读取
,以及
关闭
中定义的。

您需要的函数被调用
打开()
(来自
),
读取()
(来自
)和
关闭()
(来自
). 下面是一个使用示例:

fd = open("input_file", O_RDONLY);
if (fd == -1) {
    /* error handling here */
}

count = read(fd, buf, 512);
if (count == -1) {
    /* error handling here */
}

close(fd);

您需要的函数称为
open()
(来自
)、
read()
(来自
)和
close()
(来自
)。下面是一个使用示例:

fd = open("input_file", O_RDONLY);
if (fd == -1) {
    /* error handling here */
}

count = read(fd, buf, 512);
if (count == -1) {
    /* error handling here */
}

close(fd);

这个答案很简短。它可能应该是一个评论或扩展。这个答案非常简短。它可能是注释或展开的。是否没有
close()
的错误句柄?也许你伤害了
close()
的感情?@chux我认为在这种情况下,忽略
close()
上的错误是安全的,因为我们没有写入文件。
close()
fclose()
;-)
close()
没有错误句柄?也许你伤害了
close()
的感情?@chux我认为在这种情况下,忽略
close()
上的错误是安全的,因为我们没有写入文件。
close()
fclose()
;-)大概是你在课堂上学到的东西?大概是你在课堂上学到的东西?