系统编程: 文件操作、进程控制、进程间通信、多线性编程、网络编程 ===> 系统函数 ===>系统调用
数据库
阻塞:读的时候如果没有可读的数据,则等待,一直到有数据可读才往下运行
对于读来讲 —> 只有设备文件和网络文件会阻塞 常规文件读的时候不会阻塞
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main()
{
int fd = open("man1.txt", O_RDONLY);
if (-1 == fd)
{
printf ("打开文件失败\n");
printf ("errno : %d\n", errno);
perror ("打开man1.txt文件失败");
return -1;
}
printf ("成功\n");
close(fd);
return 0;
}
可通过在ubuntu中查询函数来获知使用方法
可查到头文件,参数
int main()
{
close(1);
// 文件不存在,创建一个文件, 文件的权限由第三个参数决定,最终的权限:mode & (~umask)
int fd = open("abc", O_WRONLY | O_CREAT, 0777);
if (-1 == fd)
{
printf ("打开文件失败\n");
printf ("errno : %d\n", errno);
perror ("打开man1.txt文件失败"); // 打印错误信息,参数是自己的相关提示
return -1;
}
printf ("成功, fd = %d\n", fd);
fflush(stdout);
close(fd);
return 0;
}
文件描述符:每一个打开的文件都有一个描述符
0:标准输入
1:标准输出
2:标准错误
文件描述符: 打开文件的时候,返回的文件描述符默认使用当前可用的最小的文件描述符
文件不存在,创建一个文件,文件的权限由第三个参数决定,最终的权限:mode & (~umask)
系统默认掩码umask为0022,即010 010,即创建的文件中只有user有可写权限
版权声明:本文为weixin_43665091原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。