Fonctions de la bibliothèque:
#include <unistd.h>
Lecture de fichier:
ssize_t read (int fd, void * buf, size_t count) ;
Valeur de retour : La valeur de retour est le nombre d'octets réellement lus. Si elle renvoie 0, cela signifie que la fin du fichier est atteinte ou qu'il n'y a pas de données à lire. Si le nombre de paramètres est 0, alors read () n'a aucun effet et renvoie 0. Si une erreur se produit, il renvoie -1
Écriture de fichier:
ssize_t write (int fd, const void * buf, size_t count);
Valeur de retour : en cas de succès, write () retournera le nombre d'octets réellement écrits. Lorsqu'une erreur se produit, elle renvoie -1 et le code d'erreur est stocké dans errno.
fd : descripteur de fichier (0: combiné avec l'entrée standard du processus, 1: combiné avec la sortie standard du processus, 2: combiné avec l'erreur standard)
buf : pointe vers la zone tampon contenant les données en cours d'écriture, ou une zone tampon vide où de nouvelles données sont placées
count : la taille des données dont la lecture ou l'écriture est demandée
Code:
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
int main()
{
int fd;
char *buf = "Read and write files";
//打开文件 file-3
fd = open("./file-3",O_RDWR|O_CREAT,0600);
printf("fd = %d\n",fd);
//将缓存区 buf 的内容写入文件 file-3
int n_write = write(fd,buf,strlen(buf));
printf("n_write = %d\n",n_write);
char *readBuf;
readBuf = (char *)malloc(sizeof(char) * n_write);
//将光标移动到文件开头的位置(read读取的是光标后面的内容)
lseek(fd,0,SEEK_SET);
//读取文件的内容到缓存区 readBuf
int n_read = read(fd,readBuf,n_write);
printf("readBuf = %s\n",readBuf);
printf("n_read = %d\n",n_read);
close(fd);
return 0;
}