Summary Day31

1.内存管理

1.1 比较内存管理的相关函数

STL

new/delete

malloc()/free()

sbrk()/brk()

mmap()/munmap()

1.2 内存处理函数的介绍

(1) mmap函数

#include <sys/mman.h>

void *mmap(void* addr, size_t length, int prot, int flagsm, int fd , off_t offset)

第一个参数:映射的地址,给NULL即可,由内核指定

第二个参数:映射大小

第三个参数:映射权限(可进行按位或运算)

PROT_EXEC 可执行

PROT_READ 可读

PROT_WRITE 可写

PROT_NONE 不可访问

第四个参数:操作标志

MAP_SHARE 共享的

MAP_PRIVATE 私有的

MAP_ANONYMOUS 映射到物理内存

第五个参数:文件描述符,映射物理内存给0即可】

第六个参数:偏移量映射物理内存时给0即可

返回值:返回映射地址,失败返回(void*)-1

函数功能:主要用于建立文件/设备 到内存的映射

(2)munmap函数

  Int munmap (void *addr, size_t length);

第一个参数:映射地址,mmap函数返回值

第二个参数:映射的大小

函数的功能:主要用于解除参数指定的映射


2.系统调用


3. 文件管理

3.1 文件的基本概念

在Unix/Linux系统中,几乎所有的一切都可以看作文件,因此,对文件的操作使用与各种输出设备

输入设备扥等,当然目录页可以看做文件

如;

dev/null 空设备

echo hello > /dev/null  表示丢弃处理结果

ciat /dev/null > a.txt  表示清空文件a.txt


3.2 文件相关读写函数

复习标C函数:

fopen()/fclose()/fread()/fwrite()/freek()


(1)open 函数

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>


int open(const char*pathname, int flags, mode_t mode);


第一个参数: 字符串形式的文件路劲和文件名

第二个参数: 操作标志

必须包含以下访问模式中的一种:

O_RDONLY 只读

O_WRONLY 只写

O_RDWR 可读可写

还可以按位或以下标志
O_APPEND 追加,写入到文件尾部

O_CREAT 文件不存在则创建,存在则打开

O_EXCL 与O_CREAT搭配使用

O_TRUNC 文件存在且允许写,则清空文件

第三个参数:操作模式,权限

返回值:成功返回新的文件描述符,失败返回-1

函数功能:主要用于打开、创建疑问文件设备


(2)close 函数

#include <unistd.h>

int close (int fd);

函数功能:主要用于关闭参数fd指定的文件描述符,也就是描述符fd不在关联任何一个文件,以便于下次使用

(3) read函数

#include <unistd.h>

ssize_t read(int fd, void *buf, size_t count);

第一个参数:文件描述符(从哪里读)

第二个参数:缓冲区的首地址(存到哪里)

第三个参数:读取数据大小

返回值:成功返回读取的字节数,返回0表示读取到文件尾部失败返回-1

函数的功能: 表示从指定的文件中读取指定大小的数据


(4)write函数

#inlcue <unistd.h>

ssize_t write(int fd, const,void *buf, size_t count);


(5)lseek

#include <sys/types.h>

#include <int fd, off_t offset, int whence>;

第一个参数:文件描述符

第二个参数:偏移量

第三个参数:起始位置

SEEL_SET

SEEK_CUR

SEEK_END


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值