【Linux基础(一)】设备和文件IO

1、Linux中的设备管理

Linux采用文件系统管理硬件设备,所有的设备都看成是特殊的文件,从而将硬件设备的特性及管理细节对用户隐藏起来,实现设备无关性。

在这里插入图片描述

1.1、设备管理的特点

每个设备都对应文件系统中的一个索引节点,都有一个文件名。
应用程序通常可以通过系统调用open()打开设备文件,建立起与目标设备的连接。
对设备的使用类似于对文件的存取。
设备驱动程序都是系统内核的一部分,它们必须为系统内核或者它们的子系统提供一个标准的接口。
设备驱动程序使用一些标准的内核服务,如内存分配等。

1.2、设备分类

在这里插入图片描述

1.3、设备工作原理

在这里插入图片描述

1.4、Linux设备操作

在这里插入图片描述

1.5、系统调用和系统API等区别

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、文件IO

2.1、C库的文件操作

在这里插入图片描述

2.2、文件描述符

在这里插入图片描述

2.3、特殊文件描述符

在这里插入图片描述

2.4、系统调用

2.4.1、open系统调用4-1

在这里插入图片描述

2.4.2、open系统调用4-2

在这里插入图片描述

2.4.3、write系统调用

在这里插入图片描述

#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
void main()
	int outfd = 0, r_size = 0;
	char buf[ ] = “Hello world!!;
	outfd = open(“first”,O_WONLY | O_TRUNC | O_CREAT,S_IRWXU);
	if(outfd>0)
	{
		r_size = write(outfd,buf,sizeof(buf));
		if(r_size>0)
		{
			printf(“write data to file success”);
		}	
		close(outfd);		
	}
}

2.4.4、read系统调用

在这里插入图片描述

2.4.5、文件的随机读写

在这里插入图片描述

2.4.6、lseek系统调用6-1

在这里插入图片描述

2.4.6、lseek系统调用6-2

在这里插入图片描述

2.4.7、mkdir系统调用

在这里插入图片描述

2.4.8、rmdir系统调用

在这里插入图片描述

2.5、打开文件的方式

在这里插入图片描述

2.6、访问权限

在这里插入图片描述

2.7、文件打开示例

#include <fcntl.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
void main()
{
	int outfd = 0;
	outfd = open(“myfile",O_WRONLY|O_CREAT|O_TRUNC,S_IRWXU|S_IRGRP);
	if(outfd==-1)
	{
		perror(“fail to open file\n”);
		exit(-1);
	}
	else
	{
		perror(“success to open file\n”); 
	}
	close(outfd); //关闭文件描述符
}

2.8、关闭文件close

在这里插入图片描述

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值