【Linux】Linux下文件操作函数

本文对比了C语言中的库函数和Linux的系统调用函数,详细阐述了两者之间的区别和效率差异,并重点介绍了Linux下进行文件操作的系统调用函数,包括open、read、write、close、lseek等,还提到了通过这些函数实现文件拷贝的练习题,以及用户态到内核态的切换过程。
摘要由CSDN通过智能技术生成

C语言中:fopen()        fread()     fwrite()        fclose()      fseek()   ——库函数

Linux:   open()           read()       write()        close()       lseek()        stat()         ——系统调用函数

1.库函数的系统调用函数的区别

系统调用函数是操作系统为内核代码提供给上层使用的函数接口,它的调用在用户态,可由应用程序调用,执行在内核态,由操作系统内核实现,有操作系统内核权限

库函数是语言自身带的库文件,其中是特定功能的实现,由编译器实现封装成的在用户态调用,在用户态执行,但有些库函数需要转调系统调用函数。

库函数不能直接去操纵物理硬件,必须经过操作系统,所以有些库函数要转调系统调用函数才可以(库函数中只要需要底层支持的都绕不开操作系统,绕不过操作系统就要调用系统调用函数)

所以printf和scanf需要底层支持(一个从界面获取数据,一个将数据打印到界面),而strlen和strcpy则不需要

2.二者效率

(1)库函数有时效率高于系统调用函数,原因:

a.系统调用函数的需要从用户态切换到内核态,而库函数则不需要切换

b.用库函数申请内存时,可能会多分配一些内存,但使用系统调用函数申请时,不会多分配,你申请多少他只会给你分配多少,这在你还需要更大一些内存的情况下,库函数效率高一些

(2)系统调用函数有时效率高于库函数,原因:

有些库函数的调用还需转调系统调用函数

3.Linux文件操作函数

 包含的头文件:

#include<sys/types.h><

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值