Linux mmap
Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明: 头文件: 原型: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offsize); 返回值: 成功则返回映射区起始地址, 失败则返回MAP_FAILED(-1). 参数: addr: 指定映射的起始地址, 通常设为NULL, 由系统指定. length: 将文件的多大长度映射到内存. prot: 映射区的保护方式, 可以是: PROT_EXEC: 映射区可被执行. PROT_READ: 映射区可被读取. PROT_WRITE: 映射区可被写入. PROT_NONE: 映射区不能存取. flags: 映射区的特性, 可以是: MAP_SHARED: 对映射区域的写入数据会复制回文件, 且允许其他映射该文件的进程共享. MAP_PRIVATE: 对映射区域的写入操作会产生一个映射的复制(copy-on-write), 对此区域所做的修改不会写回原文件. 此外还有其他几个flags不很常用, 具体查看linux C函数说明. fd: 由open返回的文件描述符, 代表要映射的文件. offset: 以文件开始处的偏移量, 必须是分页大小的整数倍, 通常为0, 表示从文件头开始映射. 下面说一下内存映射的步骤: 用open系统调用打开文件, 并返回描述符fd. 用mmap建立内存映射, 并返回映射首地址指针start. 对映射(文件)进行各种操作, 显示(printf), 修改(sprintf). 用munmap(void *start, size_t lenght)关闭内存映射. 用close系统调用关闭文件fd. 注意事项: 在修改映射的文件时, 只能在原长度上修改, 不能增加文件长度, 因为内存是已经分配好的.
相关文档:
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。
于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。
& ......
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
---------------------------------------------
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName ......
Linux帐户的密码加密后存放于/etc/shadow文件中。对于Redhat Enterprise版本,默认使用MD5算法,这个算法已经很不安全。很多经典的黑客教程都是教人拿到shadow文件后回去破解出root的密码,如果能用更难破解的sha算法加密密码无疑可以提高服务器的安全性。以下内容是综合了http://www.cyberciti.biz/faq/rhel-centos-fedora ......
追根究底 http://blog.csdn.net/cataol/ cataol@hotmail.com 欢迎转载,但请保留作者信息 这两天在学习Linux驱动相关的资料,在这里做一下学习笔记,以便以后查询。以前也有做过工作方面的知识整理,可惜在硬盘里零零散散,甚至有些都被删掉了,唉。 & ......
linux 挂载命令 : Mount
http://www.zhiweinet.com/jiaocheng/2009-02/2602.htm
mount挂载命令使用方法:
mount -t 类型 -o 挂接方式 源 目标
-t 详细选项
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:n ......