- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Linux编程手册学习笔记3
第十四章:系统编程的概念4、5、13章介绍了文件I/O,本章和后续章节则会深入探讨与文件相关的一系列主题。15章讨论文件的各种相关属性,16章和17章则会关注linux2.6的两个新特性,18章讨论目录和链接。一、设备专用文件(设备文件): 设备专用文件与系统的某个设备相对应,有些设备是存在,比如鼠标、磁盘和磁带设备;有些则是虚拟的,但内核会通过设备驱动程序提供一种抽象设备,设备无差异性。设备分为
2017-04-01 20:38:43
357
原创 Linux编程手册学习笔记2
第十一章:系统限制和选项两种方式获得系统限制和选项:编译程序时通过头文件;程序运行时通过sysconf、pathconf、fpathconf函数获取。一、系统限制:运行时恒定值、路径名变量值、运行时可增加值。getconf命令可以获取限制和选项。二、运行时获取系统限制和选项:sysconf获取,Linux通过setrlimit能够修改资源限制:RLIMIT_NOFILE,RLIMIT_NPROC,R
2017-03-10 20:24:44
423
原创 Linux编程手册学习笔记
第六章:进程一、进程和程序:进程由用户内存空间(程序代码和变量)和一系列内核数据结构(维护进程状态信息:进程相关标识号IDs、虚拟内存表、打开的文件描述符、信号传递及处理的有关信息、进程资源使用及限制、当前工作目录和大量的其他信息)组成。 1、二进制格式标识:a.out(汇编程序输出)->COFF->ELF; 2、机器语言指令:对程序算法进行编码; 3、程序入口地址:标识程序开始执行时的其实指
2017-02-24 19:28:03
373
原创 Linux编程手册
第四章:文件I/O—-通用的I/O模型一、概述:磁盘I/O操作、缓冲(buffering)、内核和stdio库中的I/O缓冲等。 通用的I/O模型的系统调用:打开文件、关闭文件、从文件中读数据和向文件中写数据。 stdin、stdout、stderr描述符是0、1、2。freopen()函数调用之后无法保证stdout是1。二、通用I/O:fd=open(pathname,flags,mode)
2016-12-25 09:56:23
423
原创 静态库和共享库
-fPIC选项指定编译器应该生成位置独立的代码,用于运行时重定位的引用; -Wall表示开启警告; -g表示输出调试信息;-Wl,-rpath,dir(‘$ORIGIN’指定应用程序所在路径为共享库查找路径) 表示指定运行时路径,LD_RUN_PATH也可以定义此值,前提是不指定rpath;-Wl是ld连接器被间接引用时必须加上的。 LD_LIBRARY_PATH指定搜索目录; /etc/l
2016-11-23 21:15:44
322
原创 内存池--学习笔记
一、默认的内存管理函数不足二、内存池简介: 1、内存池的定义:一种内存分配方式 2、内存池的优点:内存分配效率的提升 3、内存池的分类:单线程内存池和多线程内存池 4、进程通信:管道、信号、报文、共享内存、信号量、套接字。 线程同步:互斥锁、条件便利、信号量。
2016-10-17 11:01:52
273
原创 redis学习笔记4:独立功能的实现
一、发布与订阅redis的发布和订阅功能由PUBLISH、 SUBSCRIBE、PSUBSCRIBE等命令组成。(一)频道的订阅与退订 服务器状态redisServer的pubsub_channels字典里面存储着频道的订阅关系,这个字典的键是某个被订阅的频道,而键的值则是一个链表,链表里记录了所有订阅这个频道的客户端。1、订阅频道 每当客户端执行SUBSCRIBE命令订阅某个或某些频道的时候
2016-10-13 21:01:52
970
原创 redis学习笔记3--多机数据库的实现
一、复制slaveof命令让一个从服务器去复制主服务器。(一)旧版复制功能的实现 redis的复制功能分为同步(sync,将从服务的状态更新至主服务器当前所处的数据库状态)和命令传播(command propagate,主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库状态重新回到一致状态)两个操作。1、同步 主服务器生成RDB文件,并将在生成RDB文件期间
2016-10-10 11:36:11
1277
原创 redis学习笔记2--单机数据库的实现
一、数据库(一)服务器中的数据库 所有数据库都保存在服务器状态redis.h/redisServer结构的db数组(每个项都是redisDb结构,每个redisDb结构都代表一个数据库)中,在初始化服务器时,程序会根据服务器状态的dbnum属性来决定应该创建多少个数据库。dbnum属性的值由服务器配置的database选项决定,默认的值是16。(二)切换数据库 (SELECT) 每个redis
2016-09-22 17:36:53
682
原创 redis学习笔记1--底层数据结构与对象
一、数据结构与对象(一)简单动态字符串 1、SDS的定义(简单动态字符串) struct sdshdr{ int len;//记录buf所保存字符串的长度 int free;//记录buf中未使用的字符串的长度 char buf[]; //字节数组,用于保存字符串数据
2016-09-19 14:54:23
764
原创 Linux学习笔记(四)--MySQL学习--CentOS的安装
(一):MySql command line client的安装使用。 (二):MySQL的: http://www.cnblogs.com/hoojo/archive/2011/06/20/2085390.html(一)centos安装: centos镜像文件下载:网易源; gcc g++ vi mysql安装; (二)SSH登录: http://www.zhixing123.cn
2016-09-14 15:11:40
309
原创 Linux学习笔记(三)--redis学习
一:redis在ubantu的安装方法: http://jingyan.baidu.com/album/bad08e1ee14ae409c85121cf.html?picindex=1 二:redis的基础介绍: http://blog.youkuaiyun.com/eroswang/article/details/7080412 三:redis的命令参考: http://doc.redisfans.
2016-09-12 11:25:01
384
转载 Linux学习笔记(二)g++_gdb
一:g++学习 1、g++和gcc的区别: http://blog.chinaunix.net/uid-23023613-id-88201.html 2、g++基本用法: http://blog.youkuaiyun.com/richerg85/article/details/17073805 http://blog.youkuaiyun.com/mtawaken/article/details/7416332
2016-09-07 20:46:31
306
原创 Linux学习笔记(一)
一:学习环境的配置:VirtualBox(虚拟机)+Ubuntu(操作系统);共享文件夹,共享粘贴板。如果需要远程登录的话就需要配置网络连接。 二:学习环境的熟悉: 1、桌面: Ubuntu 默认桌面环境采用 GNOME,一个 UNIX 和 Linux 的主流桌面套件和开发平台。可以桌面式地管理应用软件,包括LibreOffice,firefox web browser,s
2016-09-07 10:16:02
883
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人