非缓冲文件操作针对小规模文件的读写,或者是实时设备。
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
#include<unistd.h>
#define LENGTH 2000
int main()
{
char a[LENGTH];
char b[LENGTH]={"1234567890"};
//open file
int fp,i,j=0;
fp=open("./test.txt",O_RDWR,LENGTH);
if(fp==-1)
{
printf("open file fail\n");
}
else
{
printf("open file successful\n");
}
//read file
i=read(fp,a,LENGTH);
if(i>0)
{
for(j=0;j<sizeof(a);j++)
{
putchar(a[j]);
}
printf("\n");
}
else
{
printf("read file error!\n");
}
//fwrite
if(write(fp,b,sizeof(b))==-1)
{
printf("write file error\n");
}
else
{
printf("write file successful\n");
}
//lseek
lseek(fp,2,SEEK_SET);
lseek(fp,2,SEEK_CUR);
lseek(fp,2,SEEK_END);
//close file
if(close(fp))
{
printf("fclose error\n");
}
return 0;
}
完!!