arm-linux学习笔记3-linux内存管理与文件操作
配置好linux系统之后需要vim配置一下,有助于我们的编程,主要的配置如下
在/etc/vim/vimrc文件中
"显示行号
set number
"自动缩进
set autoindent
"智能缩进
set smartindent
"一次四格 tab
set tabstop=4
"一次四格
set shiftwidth=4
"括号匹配
set showmatch
"右下角显示光标状态行
set ruler
"文件类型检测
filetype on
基本上这些配置就好了
内存管理基本上就是内存的申请,内存的释放,已经申请的内存大小调整这些函数,如下使用
malloc 用于申请内存
free 用于释放内存
calloc 申请一块内存,同时初始化这一块内存
realloc原来的内存大小不对,现在申请一块新的内存,同时先释放掉原来的内存
文件系统
Linux文件系统支持两种,一种是系统调用的编程,还有一个是标准库的编程,先说标准库
在linux ascii编程中,文件的表示是文件指正FILE*类型
- 标准输入 stdin键盘标准输入 stdout标准输出默认是屏幕 stderr 标准错误 默认是屏幕
- 缓冲,linux文件系统包含三种缓冲机制,全缓冲,缓冲区写满之后才会读写物理设备,行缓冲,遇到换行符’\n’才会写入物理设备 无缓冲,直接读写,建议不用
setbuf函数可以设置缓冲区大小,参数是文件指针和缓冲区
setvbuf 设置缓冲的大小,缓冲的模式
3._IOFBF全缓冲 _IOLBF行缓冲 _IONBF无缓冲
4.文件的打开和关闭
fopen 打开带模式 r读 w wb 写并清空 rb+读写打开 w+写并清空
fclose 关闭文件
读文件
getc 读取一个字节,失败或者到末尾返回EOF
fgetc 和前一个一样
getchar 从标准输入读入一个字节
putc
fputc 写入一个字节
putchar 向标准输出写入一个字节
fgets 从文件中读取一行
gets 从标准输入读取一行
fputs 向文件中写入一行字符串,终止符必须是nil
puts 向标准输出输出一行
fread 读取一块 参数是缓冲区指针 数据块大小 数据块数量 文件指正
fwrite 写入一块 参数类似,只是动作变成了写入
文件定位
fseek 参数为文件指针 定位偏移 起始点
SEEK_CUR 当前位置 SEEK_END文件结尾 SEEK_SET文件开头
ftell 该函数也是文件定位,只是依靠文件指正参数中的数据来定位
rewind 将文件指正设置为最开始位置
第二种文件编程为系统调用 posix调用
Posix调用对于每一个文件都有一个文件描述符,是一个整数,代表一个索引值,默认一个进程最多可以打开1024个文件
标准输入文件描述符0 标准输出 1 标准错误 2
文件的打开
首先使用posix需要包含文件
<sys/types.h>
<sys/stat.h>
<fcntl.h>
还有一个全局的变量errno
open 打开文件,文件路径 打开标志 (打开同时创建还要制定文件权限)
标志包括o_rdonly o_wronly o_rdwr等
create 创建文件 目前不需要,直接使用open就可以创建
close 关闭文件,参数为文件标识符
读写文件内容
write
read
文件定位
lseek 参数与fseek基本一致,只是文件指针换成了文件标识符
修改已经打开的文件的属性
fcntl 涉及到文件锁的操作
arm-linux学习笔记3-linux内存管理与文件操作的更多相关文章
- [转帖]Linux学习笔记之rpm包管理功能全解
Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...
- iOS学习笔记之ARC内存管理
iOS学习笔记之ARC内存管理 写在前面 ARC(Automatic Reference Counting),自动引用计数,是iOS中采用的一种内存管理方式. 指针变量与对象所有权 指针变量暗含了对其 ...
- linux学习笔记2 - linux常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...
- linux学习笔记--程序与进程管理
.工作管理 1.前台程序放后台程序 命令后 加 & 2.任务执行时将前台任务任务放到后台中并[暂停] ctr + z 3.jobs 观察后台工作状态 及多少任务在执行,可以通过 help ...
- Linux学习笔记(22) Linux启动管理
1. 系统运行级别 运行级别 含义 关机 1 单用户模式,可想象为windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 完全的命令行模式,就是标准字符界面 4 系统保留 ...
- Linux学习笔记之Linux相关知识
[想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...
- 【cocos2d-x 3.x 学习笔记】对象内存管理
内存管理 内存管理一直是一个不易处理的问题.开发人员必须考虑分配回收的方式和时机,针对堆和栈做不同的优化处理,等等.内存管理的核心是动态分配的对象必须保证在使用完成后有效地释放内存,即管理对象的生命周 ...
- Linux学习笔记之Linux磁盘及文件系统管理笔记
Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...
- 操作系统学习笔记(三) windows内存管理
//系统物理页面是由 (Page Frame Number Database )简称PFN数据库来进行管理,实际上是一个数组,每个物理页面都对应一个PFN项. 进程的地址空间是通过VAD(Virtua ...
随机推荐
- ios view改变背景图
一般我们设置 一个view的背景 可以通过 在view上放一个imageView 来显示背景图片 这里介绍另外一种方法 可以直接通过改变view.backgroundColor的值 来达到上面的效 ...
- THOUGHTS: programming in linux... with third_party open sources... methods
Actually I do not have experiences in programming with open sources/third party libs.. in linux.. I ...
- iOS 程序性能优化
前言 转载自:http://www.samirchen.com/ios-performance-optimization/ 程序性能优化不应该是一件放在功能完成之后的事,对性能的概念应该从我们一开始写 ...
- UVALive 2324 Human Gene Functions(动态规划)
题意:求出将两个字符串改成一样长度所能形成最大的相似度. 思路:这个可以说是编辑距离的一个变形,编辑距离最终状态时要两个字符串完全一致,这个就是要求长度一样,而且这个只允许插入“—”这一个字符.模仿编 ...
- ExtJS4 的dom
Ext使用了三个核心的工具类对我们掌握的DOM进行了完美的封装. ┣ Ext.Element(几乎对DOM的一切进行了封彻底装) ┣ Ext.DomHelper(一个强大的操控UI界面的工具类) ┣ ...
- 转:Emmet 学习之路 - 2 基本语法
http://blog.csdn.net/jizhongchun/article/details/8472755 导读:Emmet的基本语法.学习步骤是:1 基本语法: 2 html命令: 3 css ...
- sublime使用方法
一.sublime菜单简介[常用功能及快捷键] [Edit菜单] 1.line行操作快捷键 ctrl+] 增加缩进 ctrl+[ 减小缩进 ctrl+shift+D 复制当前行 ctrl+shift+ ...
- JSP标准标签库(JSTL)--函数标签库 fn
和String的方法类似,就是对String的一种封装. No. 函数标签名称 描述 1 ${fn:contains()} 查询某字符串是否存在,区分大小写 2 ${fn:containsIgnore ...
- MediaScanner与音乐信息扫描==
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=98713 =================================== ...
- zf-关于把某个地址的svn项目移动到另一个上面的步骤
1 首先查检出来 2 然后断开连接 删除元信息(这个必须注意,很敏感的,不然酒吧元信息带入到了另外一个svn地址中了) 3 之后再到另外一个svn上建立远程资源文件,把项目导入进去,注意不要导入错了, ...