摘要: 什么是守护进程? 守护进程是运行于后台、常驻内存的特殊进程,独立于控制终端。它的父进程是init进程,它是一个孤儿进程,没有控制终端,所以任何输出,无论是向标准输出设备stdout还是标准出错设备stderr的输出都被丢到了/dev/null中。守护进程一般用作服务器进程,如httpd,syslog 阅读全文
posted @ 2017-09-28 14:17 bw98 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 进程控制介绍 进程控制中涉及到进程创建、睡眠、退出等,在Linux中提供fork、clone的进程创建方法,sleep的进程睡眠,exit的进程终止调用。 主要的系统调用 下面将具体介绍重要的系统调用的代码实现。 fork创建进程 我们可输入man 2 fork查看该函数的声明 由图可知函数声明在头 阅读全文
posted @ 2017-09-27 23:19 bw98 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 进程的概念 进程与程序不同,进程是运行中的程序,而程序是保存在硬盘上的可执行代码。 程序转为进程的三个步骤: Linux下可通过ps、pstree查看当前系统中的进程。 进程标识 每个进程都是由每个进程ID(PID)唯一标识的,PID 存储在 PCB 中, PCB 是进程控制块,是进程最重要的组成部 阅读全文
posted @ 2017-09-27 18:23 bw98 阅读(519) 评论(1) 推荐(0) 编辑
摘要: 这里提及寄存器与栈的概念,这里以c和汇编的程序为例。图片来源于博主Casualet。 注意,阅读本文之前,请先复习一下汇编语言的常见指令。可以通过文章《几种基本汇编指令详解》进行简略复习。 为什么用汇编去分析呢?因为汇编更为底层,能够深入操作系统的内容。这儿给出了 C 与汇编的对比,很明显有两个调用 阅读全文
posted @ 2017-09-25 23:35 bw98 阅读(984) 评论(2) 推荐(0) 编辑
摘要: 定义 栈的顺序存储结构是利用一组地址连续的存储单元存储栈底到栈顶的元素,同时附带top指针指示栈顶元素在顺序栈中的位置,base指针指向栈底元素的位置。 溢出问题 由于栈在使用过程中,栈的大小不好估计,所以在初始化时不应限定栈的最大容量。一种解决办法是先给栈定一个初始容量,然后当不够用时再按每个元素 阅读全文
posted @ 2017-09-25 16:53 bw98 阅读(187) 评论(2) 推荐(0) 编辑
摘要: Description 给定一个N*N的迷宫中,(0,0)为起始点,(N-1,N-1)为目的地,求可通往目的地的多个解 思路 这道题其实就是简单的DFS,一路探索到底,没路就回溯到交叉口。 输出的解: 0000 1010 1010 1010 now,position is(0,0) now,posi 阅读全文
posted @ 2017-09-23 17:11 bw98 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 概述: GDB是UNIX下强大的调试工具,如果在UNIX下调试C/C++程序,GDB会比IDE的调试工具更好使。 要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如: 如果没有-g,你将看不见程序的函数名、变 阅读全文
posted @ 2017-09-21 00:11 bw98 阅读(273) 评论(2) 推荐(0) 编辑
摘要: 什么是make? 利用make,一步就可以完成大量的源文件编译和链接,从而不必再一条条输入gcc命令。 什么是makefile? makefile是一个文本文件,里面记录了哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译。makefile的好处是“自动编译”,只需要一个make命令,整个 阅读全文
posted @ 2017-09-20 14:11 bw98 阅读(358) 评论(2) 推荐(0) 编辑
摘要: 9/20/2017 学<LINUX C编程实战》中 1.打开 fopen实现打开指定的文件FileName,mode指打开的形式,C语言中打开的形式种类如下: b用于打开二进制文件而非文本文件,这是DOS、Windows下的情况。在Linux中不区分二进制文件和文本文件。 同时注意,标志都是cons 阅读全文
posted @ 2017-09-20 00:44 bw98 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 9/19/2017 开始攻读《LinuxC编程实战》,这是相关的笔记 1.创建 参数mode指定新建文件的存取权限,它与umask一起决定文件最终的存取权限(mode&umask),其中umask代表的是创建文件时需要去掉的文件存取权限,可通过系统调用下列函数改变umask的值: 改调用通过将uma 阅读全文
posted @ 2017-09-19 23:36 bw98 阅读(1496) 评论(0) 推荐(0) 编辑