linux

linux 环境编程学习笔记 第12天 curses(2)

curses 接着前天 6.字符属性与颜色 判定终端是否支持颜色 bool has_colors();//都支持颜色,建议不判定 初始化颜色: int start_color(); 定义颜色对 int init_pair(short pair,short fore,short back); init_pair 一定要放在 start_color()后面 使用颜色对 COLOR_PAIR(sh ...

linux

linux 环境编程学习笔记 第11天 curses

一、curses 1.简介: CUI字符界面,GUI:图形界面 curses就是cui的库 老版本libcurses.so,新版本libncurses.so printf / scanf 等标准IO 大部分是 重定向到终端 /dev/tty /dev/pts/1,curses就是终端输出。 编译时要 指定curses的库 -lcurses 或者 -lncurses 2.编程模型 初始化终端i ...

linux

linux 环境编程学习笔记 第九、十天 IO与文件映射,IO锁

一、IO与文件映射 1.IO的共享与效率 read与write其中数据缓冲的大小 读取数据的缓冲:getpagesize。 2.定位与定位读取(随机读取) read与write在操作时,自动移动读取位置 (1)用lseek 可以 改变读取位置 lseek的函数说明: off_t lseek( int fd,//定位文件描述符号 off_t off,//定位位置 int whence//定位参 ...

linux

linux 环境编程学习笔记 第七、八天 IO基础

一、IO基础 1.认识内核对象 系统不允许程序直接访问设备和内存,但可以通过内核系统函数去访问,系统对每个内核对象对象分配ID号。 程序要访问内核对象,只能通过ID号来访问。(申请得到一个ID ,在内核系统函数中使用ID得到对应内核对象数据)。 2.怎么访问文件 使用函数传递一个文件,系统打开文件,返回给程序ID号,程序通过ID号来访问文件,通过ID号来告诉系统释放文件。 ( ID:文件描述 ...

linux

linux 环境编程学习笔记 第六天 make与makefile,环境变量

一、make与makefile makefile列子 OBJ=add.o sub.o add.o:add.c gcc add.c -c -fpic sub.o:sub.c gcc sub.c -c -fpic libku2.so:$(OBJ) gcc -shared -olibku2.so $(OBJ) main:main.c libku2.so gcc main.c -ldl -omain ...

linux

linux 环境编程学习笔记 第四、五天 映射虚拟内存,编译工具,静态库,动态库

一、映射虚拟内存 mmap / unmap void *mmap( void *start,//指定映射的虚拟地址 0由系统指定开始位置) size_t length,//映射空间大小 pagesize()倍数 int prot,//映射权限 PROT_NONE 或 PROT_READ PROT_WRITE PROT_EXEC int flags,//映射方式 int fd,//文件描述符号 ...

linux

linux 环境编程学习笔记 第三天 虚拟内存的分配

寒假学习 第三天 (linux 高级编程) 笔记 小结 晚上刷了笔记本的BIOS ,尽然刷坏了,折腾了一个晚上还没好,我勒个去快哭了。只能在自己的台式机上搞了。 一、虚拟内存的分配 int brk(void *addr); 分配空间,释放空间 void *sbrk(intptr_t increment); 返回空间地址 #include #include int main() { int * ...

linux

linux 环境编程学习笔记 第二天 linux 内存管理 ,虚拟内存

一、linux 内存管理 接着昨天 5.函数调用栈空间的分配与释放 函数执行时有自己的临时栈空间,c++成员函数有两个临时栈空间 一个是成员函数的还有一个是对象的 stdcall cdecl fastcall 决定函数栈压栈的参数顺序(这三个都是从右到左) 决定函数栈清空方式 决定函数的名字转换(windows) nm 程序 时 c程序 add 函数名字就叫add c++因为有重载机制会 把 ...