
Linux
NeverWA
哈啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
展开
-
linux的常用命令
Linux 之 常用的若干条命令玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的...原创 2018-03-21 09:20:42 · 12644 阅读 · 0 评论 -
Linux 进程通信
Linux 进程通信1.传统进程通信1.1 信号信号机制是在软件层次上对中断机制的一种模拟。 信号的捕获与处理也成为系统的“软中断”机制。1.1.1 常用信号每个信号都有一个编号和宏定义的名称,这些名字都已SIG开头。宏定义在signal.h头文件中。1.1.2 信号的处理缺省操作,默认的信号处理方式。SIG_DFL 忽略信号,进程忽略接收到的信...原创 2018-05-06 14:31:38 · 12976 阅读 · 0 评论 -
Core Dump
Core Dump事后调试 当一个进程要异常终止时,可以选择把进程的用户空间内存数据全部保存到磁盘上,文件名通常叫core,这叫做Core Dump。进程异常终止通常是因为有Bug,比如非法访问内存导致段错误,事后可以用gdb调试器检查core文件以查清错误原因,这叫做事后调试。一个进程允许产生多大的core文件取决于进程的Resource Limit。 系统默认不允许产生core文件的,是...原创 2018-06-13 11:41:57 · 13364 阅读 · 0 评论 -
Linux多线程
Linux多线程1. 线程?线程是一个进程内部的控制序列。线程共享进程数据,但线程也拥有自己私有的上下文数据、私有栈结构。是程序执行的最小单位。2. Linux中的线程Linux中的线程是用进程模拟的。在Linux中,操作系统没有专门的结构来管理线程,而是用给线程分配一个PCB(更准确地说应该叫TCB)。我们知道,Linux在创建进程时做了有如下工作: 1. 分配一个进程...原创 2018-06-22 11:11:04 · 11857 阅读 · 0 评论 -
进程调度算法
进程调度算法在《计算机操作系统》一书中,提到了几种分时系统中的进程调度算法。现在将它们做一下整理1. 轮转调度算法该算法采取了公平的处理机分配方式,即让就绪队列的每个进程每次仅运行一个时间片。如果就绪队列上有n个进程,则每个进程每次大约都可以获得1/n的处理机时间。在该算法中,根据先来先服务(FCFS)策略,将所有的就绪进程排成一个就绪队列,并可设置每隔一定时间间隔产生一次中断...原创 2018-06-16 15:32:25 · 13244 阅读 · 0 评论 -
Linux 进程间关系和守护进程
Linux 进程间关系和守护进程进程间关系1. 进程组2. 作业2.1 作业与进程组的区别2.2 作业与Shell的联系3. 会话4. 作业控制守护进程1. 什么是守护进程?2. 创建守护进程的两种方法2.1 setsid函数2.2 daemon函数Linux 进程间关系和守护进程进程间关系1. 进程组进程组是一个或多个...原创 2018-06-24 17:50:39 · 11178 阅读 · 0 评论 -
信号量集控制控制进程读写共享内存
信号量集控制控制进程读写共享内存#include<stdio.h>#include<sys/sem.h>#include<sys/types.h> ...原创 2018-06-17 15:53:46 · 13003 阅读 · 0 评论 -
经典进程同步与互斥问题
经典进程同步与互斥问题1. 生产者-消费者问题1.1 简单的“生产者-消费者”问题设进程A、B是两个相互合作的进程,它们共享一个缓冲区,进程A向其中写入数据,进程B从中读出数据。producer:生产者进程,consumer:消费者进程。当缓冲区不空时,消费者便可以读数据;当缓冲区为空时,生产者便可以写数据。 设置信号量: full:表示有数据缓冲区的数目,初值为0; ...原创 2018-06-18 08:13:41 · 35153 阅读 · 1 评论 -
Linux 进程信号
Linux 进程信号信号的概念程序在正常执行过程中出现的异常情况, Linux可以响应这些异常的情况,当这些异常情况发生时,我们的程序就要做出相应的动作产生信号的来源用户按键 非法的内存访问 硬件故障 浮点数溢出 软件条件产生处理信号的方式缺省处理 忽略(SIGKILL SIGSTOP 不能忽略) 捕捉信号(SLGKILL SIGSTOP 不能被...原创 2018-06-20 15:06:46 · 13202 阅读 · 0 评论 -
gdb调试多流程程序
gdb调试多流程程序多进程默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。设置方法:set follow-fork-mode [parent|child] ...原创 2018-06-20 16:22:23 · 12571 阅读 · 0 评论 -
gdb
gdbGUN Debugger注意在程序编译过程中,使用-g选项 gcc -g -o test test.cgdb filename 这里的filename是可执行文件,而不是源文件基本命令file命令quit: shell: 切入shell当中exit:从shell界面退出到gdblist:列出调试程序的源代码 list list n ...原创 2018-04-13 19:26:21 · 12698 阅读 · 0 评论 -
Linux文件的系统调用
Linux文件的系统调用文件描述符操作系统识别文件的唯一标识。当进程创建一个新文件或者打开现有文件时,系统内核向进程返回一个文件描述符。范围为0~255三个特殊的文件描述符前三个文件标识符在系统中规定为: #define STDIN_FILENO 0 //标准输入文件 #define STDOUT_FILENO 1 //标准输出文件 #define ST...原创 2018-04-18 08:42:39 · 15392 阅读 · 0 评论 -
Linux七种文件类型
Linux七种文件类型实,在磁盘上存储- 普通文件 touch d 目录文件 mkdir l 软连接文件 ln -s虚,不在磁盘上存储c 字符设备文件 b 块设备文件 p 管道文件 mkfifo s socket文件 ...原创 2018-03-25 15:38:15 · 13829 阅读 · 1 评论 -
Linux权限
Linux权限说明权限符号r: 读权限 w: 写权限 x: 执行权限 特殊权限:s 和 t s权限:强制位。 t权限:粘贴位。让普通用户可以cp,不可以mv、rm。t权限有效的前提是普通用户有x权限用户符号u:拥有者 g:拥有者同组 o:其他用户 a: 所有用户权限说明r、w、x 对应位为1,表示拥有该权限 同时,可以把...原创 2018-03-31 17:37:29 · 12973 阅读 · 0 评论 -
Linux的常用命令二
find基本用法find 路径 -name 文件名 文件名支持模糊搜索搜索结果为文件经典用法find 路径 -name 文件名 | xargs grep 关键字在文件下查找关键字,常用于在工程下查找函数date时间转时间戳 date +%s时间戳转时间 date -d @时间戳 +”%F %T” %F: 年-月-日 %T...原创 2018-03-22 11:35:59 · 12778 阅读 · 0 评论 -
Linux文件树
Linux文件树//根目录。是Linux文件系统的第一层目录,一般该目录下只存放目录,包括但不限于:/bin, /dev, /home, /boot, /var, /root, /etc, /opt, /usr, /mnt, /tmp/bin以二进制存放一些命令,如: ls, cd, mv, rm/dev存放Linux系统下的设备文件/home系...原创 2018-03-22 11:36:33 · 13695 阅读 · 0 评论 -
Linux shell特殊字符
Linux shell特殊字符通配符星号(*)匹配任意字符 try*c //匹配: try1.c try.c try.basic问好(?)匹配任意单个字符方括号([])匹配括号里所限定的任何一个字符[Mm]akefile //匹配Makefile makefilefile[1-5] //匹配file1...原创 2018-03-22 11:37:04 · 25736 阅读 · 0 评论 -
vim基本操作
vim基本操作进入插入模式进入插入模式有一下几种方法: 1. [i] 在当前光标处插入 2. [o] 在当前光标的下一行行首插入(重新开辟一行) 3. [O] 在当前刚标的上一行行首插入(重新开辟一行) 4. [a] 在当前光标的下一个格位置处插入 5. [s] 先删除当前光标处的字符,然后再在光标处插入移动光标基本操作[h] 向左移动一格 [j] 向下...原创 2018-04-01 17:01:48 · 12783 阅读 · 0 评论 -
makefile
makefile对多文件构成的大中型软件项目进行编译、调试的工具工作机制有5个源文件 main.c function1.h function1.c function2.h function2.cmain.c#include "function1.h"#include "function2.h" int main(int argc, char **argv){...原创 2018-04-15 12:01:54 · 12678 阅读 · 0 评论 -
gcc 链接文件
gcc 链接文件生成静态库gcc -c add.c minus.c ar rcv libtest1.a add.o minus.o链接静态库方法一: gcc -o test test.c libtest1.a方法二: gcc -o test test.c -L. -ltest1生成动态库gcc -c add.c minus.c gcc -shared...原创 2018-04-15 12:03:06 · 14511 阅读 · 0 评论 -
Linux 进程的系统调用
Linux 进程的系统调用子进程创建fork() 创建子进程。fork()后会有两个并发进程执行,子进程复制了父进程的数据段,包括全局变量。父进程返回子进程的PID, 子进程返回0。 头文件:stdio.h vfork() 子进程与父进程共享地址空间。调用vfork()创建的子进程后,父进程被挂起,直到子进程结束。头文件:stdio.h进程映像的更换用新的程序代码覆盖原...原创 2018-04-18 07:52:06 · 14753 阅读 · 0 评论 -
shell工具
shell 工具sortuniqpastecutxargsgrepsed基本命令高级命令特殊符号选项awkBEGIN 和 ENDawk脚本find常见选项其它重要工具freedfiostatnetstattoparprouteshell 工具sortsort将文件的每一行作为一个单位,相互比较,比较...原创 2018-09-01 17:21:44 · 633 阅读 · 0 评论