头文件:
#include <unistd.h>
1.写入文件
write函数
ssize_t write(int fd, const void *buf, size_t count);
write() writes up to count bytes from the buffer pointed buf to the file referred to by the file descriptor fd.
代码如下(示例):
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main()
{
int fd;
char *buf = "I am handsome";
fd = open("./file",O_RDWR);
if(fd == -1){
printf("open file failed\n");
fd = open("./file",O_RDWR|O_CREAT,0600);
if(fd > 0)
{
printf("open file success\n");
}
}
printf("fd = %d\n",fd);
//ssize_t write(int fd, const void *buf, size_t count);
write(fd,buf,strlen(buf));
//int close(int fd);
close(fd);
return 0;
}
2.读取文件
read函数
ssize_t read(int fd, void *buf, size_t count);
代码如下(示例):
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int fd;
char *buf = "I am handsome";
fd = open("./file",O_RDWR);
if(fd == -1){
printf("open file failed\n");
fd = open("./file",O_RDWR|O_CREAT,0600);
if(fd > 0)
{
printf("open file success\n");
}
}
printf("fd = %d\n",fd);
//ssize_t write(int fd, const void *buf, size_t count);
int n_write = write(fd,buf,strlen(buf));
if(n_write != -1){
printf("write %d byte to file\n",n_write);
}
close(fd);
open("./file",O_RDWR);
// ssize_t read(int fd, void *buf, size_t count);
char *readbuf;
readbuf = (char *)malloc(sizeof(char)*n_write + 1);
int n_read = read(fd,readbuf,n_write);
printf("read %d , text: %s\n",n_read,readbuf);
close(fd);
return 0;
}
3,1 Top
write函数执行完后光标会移到最后,此时read读取的内容为空。
可通过重新打开文件或移动光标使光标到文件头位置