自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Linux_UNIX编程手册-读书笔记-第三十七章(DAEMON)

37.1 概述 daemon是一种具备以下特征的进程: 它的生命周期很长。通常,一个daemon会在系统启动的时候被创建并一直运行至系统被关闭. 它在后台运行并且不拥有控制终端。控制终端的确实确保了内核永远不会为daemon自动生成任何任务控制信号以及终端相关的信号。 daemon是用来执行特殊任务的,如下面的示例所示。 cron:一个在规定时间执行命令的daemon. sshd:安全s...

2020-01-16 10:58:34 171

原创 Linux_UNIX编程手册-读书笔记-第三十六章(进程资源)

36.1 进程资源使用 getrusage()系统调用返回调用进程或其子进程用掉的各类资源的统计信息。 who:指定了需查询资源使用信息的进程: res_usage:一个指向rusage结构的指针 36.2 进程资源限制 每个进程都有一组资源限值,它们可以用来限制进程能够消除的各种系统资源。 使用shell的内置命令ulimit可以设置shell的资源限制。shell创建用来执行用户...

2020-01-16 09:41:13 122

原创 Linux_UNIX编程手册-读书笔记-第三十三章(线程:更多细节)

33.1 线程栈 创建线程时,每个线程都有一个属于自己的线程栈,且大小固定。 使用pthread_attr_setstacksize()可以设置线程栈的大小。 使用pthread_attr_setstack()可以同时控制线程栈的大小和位置。 33.2 线程和信号 UNIX信号模型如何映射到线程中: 操作线程信号掩码: 刚创建的新进程会从其创建者处继承信号掩码的一份拷贝。线程可以使用pthr...

2020-01-13 14:37:13 137

原创 Linux_UNIX编程手册-读书笔记-第三十二章(线程:线程取消)

32.1 取消一个线程 函数pthread_cancel()向由thread指定的线程发送一个取消请求 发出取消请求后,函数会当即返回,不会等待目标线程的退出。 32.2 取消状态及类型 下面两个函数会设定标志,允许线程对取消请求的响应过程加以控制。 函数pthread_setcancelstate()会将调用线程的取消性状态置为参数state所给定的值。 state: 32.3 取消点...

2020-01-10 17:26:01 112

原创 Linux_UNIX编程手册-读书笔记-第三十一章(线程安全和每线程存储)

31.1 线程安全 若函数可同时共多个线程安全调用,则称之为线程安全函数。反之,如果函数不是线程安全的,则不能并发调用。 31.2 一次性初始化 多线程程序有时有这样的需求:不管创建了多少线程,有些初始化动作只能发生一次。 调用pthread_once()时要指定一个指针,指向类型为pthread_once_t的特定变量,对该函数的首次调用将修改once_control所指向的内容,以便对其后...

2020-01-10 16:09:04 100

原创 Linux_UNIX编程手册-读书笔记-第二十八章(详述进程创建和程序执行)

28.1 进程记账 打开进程记账功能后,内核会在每个进程终止时将一条记账信息写入系统级进程记账文件。 这条账单记录包含了内核为该进程所维护的多种信息,包含终止状态以及进程消耗的CPU时间。 打开和关闭进程记账功能 一般将相应命令置于系统启动脚本中,在系统每次重启时打开进程记账功能 参数为记账文件的路径名,若为NULL则关闭记账功能。 ** 进程记账记录** 一旦进程终止,就会有一条acct记...

2020-01-10 10:57:30 101

原创 Linux_UNIX编程手册-读书笔记-第二十七章(程序的执行)

27.1 执行新程序:execve() execve系统调用可以将新程序加载到某一进程的内存空间。在该过程中,将丢弃旧有程序。 参数pathname 包含准备载入当前进程空间的新程序的路径名。 argv 指定了传递给新进程的命令行参数。 envp 指定了新程序的环境列表。 27.2 exec 库函数 exec()提供了多种API选择,这些函数都构建于execve调用之上。 这几个函数的区别看下...

2020-01-09 10:58:35 102

原创 Linux_UNIX编程手册-读书笔记-第二十三章(定时器与休眠)

23.1 间隔定时器 setitimer系统调用创建一个间隔式定时器,这种定时器会在未来某个时间点到期,并于此后每隔一段时间到期一次。 which: ITIMER_REAL : 创建以真实时间倒计时的定时器。到期后会产生SIGALARM信号并发送给进程。 ITIMER_VIRTUAL :创建以进程虚拟时间倒计时的定时器。到期时会产生信号SIGVTALRM。 ITIMER_PROF : 创建...

2020-01-07 16:07:37 180

原创 Linux_UNIX编程手册-读书笔记-第二十章(信号:基本概念)

20.1 概念和概述 信号是事件发生时对进程的通知机制 一颗进程可以向另一进程发送信号,信号的这一用法可作为一种同步技术。 然而,发往进程的诸多信号,通常都是源于内核。 引发内核为进程产生信号的各类事件如下: 硬件异常(被零除,访问位未知空间) 用户键入特殊字符(ctrl+c/v) 发生软发事件(针对某个文件描述符的输出变为有效,调整了终端窗口大小,定时器到期,等) 每个信号被定义成一个整...

2020-01-03 16:04:12 101

原创 Linux_UNIX编程手册-读书笔记-第十三章(文件I/O缓冲)

13.1

2019-12-30 18:06:17 136

原创 muduo学习笔记---HttpServer_test.cc

先贴一下陈硕大佬的代码: HttpServer_test.cc : 这个是server的顶层实现,主要的工作就是注册了一个回调函数,处理http的业务逻辑 #include "muduo/net/http/HttpServer.h" #include "muduo/net/http/HttpRequest.h" #include "muduo/net/http/HttpResponse.h" #i...

2019-12-17 15:50:57 616

原创 Effective C++ 读书笔记 (1.让自己习惯C++)

条款一: 视C++为一个语言联邦 将C++视为一个语言联邦,而非单一的语言,为了理解C++,必须认识四个主要的次语言: C Object-Oriented C++ (相当于是面向对象的C++) Templata C++ (C++泛型编程) STL C++并不是一个带有一组守则的一体语言;它是从四个次语言组成的联邦政府,每个次语言都有自己的规约。 C++高效编程守则视状况而变...

2019-12-16 20:07:56 89

原创 docker学习笔记

docker入门: Docker 最初 dotCloud 公司内部的一个业余项目 Docker 基于 Go 语言 Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案 Docker 的基础是 Linux 容器(LXC)等技术 Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多 Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器 ...

2019-12-16 17:52:18 98

原创 Linux_UNIX编程手册-读书笔记-第五十四章(POSIX共享内存)

54.1 概述 POSIX共享内存能够让无关程序共享一个映射区域而无需创建一个相应的映射文件。 linux使用挂载与/dev/shm目录下的专用tmpfs文件系统,系统上POSIX共享内存区域占据的内存总量受限于底层的tmpfs文件系统大小(默认256M),超级用户可以使用mount -o remount,size=<num-bytes>重新挂载这个文件系统来修改。 使用共享内存的...

2019-12-16 16:17:20 114

原创 Linux_UNIX编程手册-读书笔记-第十二章(系统与进程信息)

系统调用uname()函数,用于获取一系列关于主机系统的标识信息,储存于utsname结构体中。 #include <sys/utsname.h> int uname(struct utsname *utsbuf) utsname结构体: 使用方法: ...

2019-12-12 15:51:29 90

原创 Linux_UNIX编程手册-读书笔记-第七章(内存分配)

7.1 在堆上分配内存 所谓堆是一段长度可变的连续虚拟内存,始于进程未初始化数据段的末尾,随着内存的分配和释放而增减。 通常将堆的当前内存边界称为"program break". brk 和sbrk 这两个函数的作用就是通过设置program break 的位置改变堆的大小。 函数原型: 但是在实际代码中很少使用这些系统调用,但是了解他们有助于弄清内存分配的工作过程。 brk()会将prog...

2019-12-12 15:37:43 88

原创 Linux_UNIX编程手册-读书笔记-第五章(深入探究文件I/O)

原子操作:将一次系统调用所需要的各个动作作为不可中断的操作,一次性加以执行。 原子操作是许多系统调用得以正确执行的必要条件。 5.1 原子操作与竞争条件 竞争状态:操作共享资源的两个进程(或线程),其结果取决于一个无法预期的顺序,这些进程(或线程)获得CPU使用权的先后相对顺序。 个人感觉就是线程安全之类的东西。 试图以独占方式打开文件的错误代码: 当两个进程在一个多CPU系统上同时运...

2019-12-12 12:06:02 160

原创 Linux_UNIX编程手册-读书笔记-第四章(文件I/O:通用的I/O模型)

4.1 概述 所有执行I/O操作的系统调用都以文件描述符,一个非负数(通常是最小整数),来指代打开的文件。 针对每个进程,文件描述符都自成一套 应该就是每个进程相互之间文件描述符不冲突 在程序开始运行之前,shell代表程序打开这三个文件描述符:stdin,stdout,stderr. 这三个文件描述符默认指向shell运行所在终端。 四个主要的I/O系统调用: fd = open(pat...

2019-12-11 17:49:15 158

原创 Linux_UNIX编程手册-读书笔记-第三章(系统编程概念)

3.1节看得有点懵,暂时没仔细看 3.2 库函数 库函数相当于是系统调用的上一层,不过只有部分库函数会调用系统调用 不调用系统调用的库函数:字符串操作函数(strstr,strchr…) 调用系统调用的库函数:fopen()->open(), printf()->write(), malloc(), free()->brk()… 往往,设计库函数是为了提供比底层系统调用更为...

2019-12-11 15:37:40 102

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除