- 博客(7)
- 收藏
- 关注
原创 进程的控制
一.进程的基本控制1.进程的常见控制函数(进程同步)1.1为什么需要控制进程控制进程运行顺序等。1.2.pause/sleep/usleep1.3.atexit/on_exit回调函数2.进程与文件锁在多进程下文件读写是共享的文件锁标识一个文件正在被进程读写(建议锁)API:fcnt1(文件锁受内核参数影响)编程技巧:对文件加锁,判定一个文件是否存在锁i
2013-12-31 23:29:52 531
原创 linux目录与进程
一.IO与文件目录管理1.pread=lseek+readpread读取以后不改变读位置2.mmap映射:/proc/${PID}/men 无法映射3.IO的有效用户与实际用户默认情况:实际用户与有效用户是一致的有效用户 effice权限用户实际用户 real执行用户getuid()与geteuid()返回一个整数uid_t4.目录相关函数
2013-12-27 11:04:59 599
原创 IO基础
1.认识内核对象操作系统不允许用户直接访问内核设备和内存但允许通过内核系统函数访问对每个内核对象进行编号ID。如果访问内核对象(内核空间的所有数据的统称),只能通过ID编程模型:申请得到一个ID在内核系统函数中使用ID得到对应内核对象。2.怎么访问文件使用函数,传递一个文件,系统打开文件,加载文件数据返回一个ID。使用函数,传递ID,得到数据。使用函
2013-12-20 09:45:31 626
原创 静态库、动态库
brk/sbrk维护一个位置,brk/sbrk改变这个位置brk改变绝对位置sbrk改变相对位置一,映射虚拟内存没有任何额外维护数据的内存分配mmap分配 unmap 释放1.函数说明void * mmap(void *start,//指定映射的虚拟地址 0 由系统指定开始位置size_t length,//映射空间大小int prot,// 映射权
2013-12-13 09:27:22 652
原创 C与虚拟内存
#includeint add(int a,int b){return a+b;}main(){int (*fun)(int )=(int (* )(int )) add;fun f=f(20);printf("%d\n",r);}函数执行的时候有自己的临时栈函数的参数就在临时栈中,如果函数传递实参,则用来初始化临时的参数变量 传递三个参数不会报错
2013-12-07 22:28:53 1543
原创 内存结构、堆结构及内存分配函数
Linux对内存结构的描述1、在linux中,目录/proc/${pid}/下存放着相应进程运行时的所有信号,其它maps中包含对该进程的内存分配信信息,在命令行下执行maps即可查看(必须是当前执行中的进程,进程结束时,对应目录自动销毁)可以以如下程序做实验:#include#includemain(){print("%d\n",getpid());while()
2013-12-01 17:49:45 977
转载 static在C和C++中的区别与总结
static主要作用下三个环境下,局部静态变量、外部静态变量与函数、静态数据成员与函数。一、局部静态变量1. 存储空间分配和生存周期不同auto类型局部变量就是普通的局部变量(不加修饰的局部变量默认为该类型)。该类型局部变量存储在栈上,在动态存储区,生命周期仅限于定义它的函数,函数结束,它就自动释放。static类型局部变量存储在静态存储区,在程序整个运行期间都不释放。两者之间的作用域
2013-12-01 09:46:23 586
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人