一、打开及创建
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int fd;
fd = open("./file1",O_RDWR);
if(fd == -1)
{
printf("open file1 failed\n");
fd = open("./file1",O_RDWR|O_CREAT,0600);
if(fd > 0)
{
printf("creat file1 success\n");
}
}
return 0;
}
函数返回一个描述符
O_RDONLY:可读
O_WRONLY:可写
O_RDWR:可读可写
ls -l:列出所有文件清单
-rwxr-xr-x 权限
可读:r 4
可写:w 2
执行:x 1
0600 代表 4+2 权限 :可读可写
给文件所有者CLC权限
二、文件的写入
cat file1 查看文本file1的内容
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
int main()
{
int fd;
char *buf = "wo shi nen die!";
fd = open("./file1",O_RDWR);
if(fd == -1)
{
printf("open file1 failed\n");
fd = open("./file1",O_RDWR|O_CREAT,0600);
if(fd > 0)
{
printf("creat file1 success\n");
}
}
printf("open success!\n:fd = %d\n",fd);
write(fd,buf,strlen(buf));
close(fd);
return 0;
}
文件打开写入后要close
Linux下指针分配8个字节
计算长度不能用sizeof ()要用 strlen()
三、文件的读取
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int fd;
char *buf = "wo shi nen die!";
fd = open("./file1",O_RDWR);
if(fd == -1)
{
printf("open file1 failed\n");
fd = open("./file1",O_RDWR|O_CREAT,0600);
if(fd > 0)
{
printf("creat file1 success\n");
}
}
printf("open success!\n:fd = %d\n",fd);
int n_write = write(fd,buf,strlen(buf));
if(n_write != -1)
{
printf("write %d byte to fali1\n",n_write);
}
close(fd);
open("file1",O_RDWR);
char *readBuf;
readBuf = (char *)malloc(sizeof(n_write+1));
int n_read = read(fd,readBuf,n_write);
printf("read %d byte context:%s",n_read,readBuf);
close(fd);
return 0;
}
因为光标位置 读取时需要关闭再打开file1,使光标移动到最前面在读取。
缓冲区readBuf 读取到readBuf中
四、光标的移动
#include