C语言文件操作

  • Post author:
  • Post category:其他


系统编程: 文件操作、进程控制、进程间通信、多线性编程、网络编程 ===> 系统函数 ===>系统调用

数据库

阻塞:读的时候如果没有可读的数据,则等待,一直到有数据可读才往下运行

对于读来讲 —> 只有设备文件和网络文件会阻塞 常规文件读的时候不会阻塞

#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 版权协议,转载请附上原文出处链接和本声明。