
Linux
double_happiness
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mac安装man中文手册
man转载 2022-09-01 14:42:55 · 470 阅读 · 0 评论 -
yaml语法总结
yaml语法总结原创 2022-08-18 15:05:14 · 246 阅读 · 0 评论 -
信号捕获之pause函数和竟态条件(mysleep)
相关博客Linux下的信号(一)http://blog.youkuaiyun.com/double_happiness/article/details/72848372Linux下的信号(二)http://blog.youkuaiyun.com/double_happiness/article/details/72897148原创 2017-06-07 20:06:32 · 1147 阅读 · 0 评论 -
关于子进程异步等待方式(SIGCHLD信号)
相关博客Linux下的信号(一)http://blog.youkuaiyun.com/double_happiness/article/details/72848372Linux下的信号(二)http://blog.youkuaiyun.com/double_happiness/article/details/72897148原创 2017-06-07 21:20:13 · 1375 阅读 · 0 评论 -
Linux下的信号(一)
信号主要是用于不同进程之间进行通信的机制,进程之间的相互协作也正是通过发送信号来完成的,而信号的本质就是修改PCB中关于信号变量的某个比特位(至于为什么是一个比特位,随后就会做出解释) 查看当前系统定义的信号列表:kill -l 请看仔细咯,上面的信号量列表个数并不是64个,而是62个信号分类:普通信号:1——31号信号实时信号:34——64号信号原创 2017-06-03 00:27:19 · 1780 阅读 · 0 评论 -
【进程间通信方式二】消息队列
消息队列消息队列提供了一种从一个进程向另一个进程发送数据快的方法原创 2017-06-29 08:19:18 · 1054 阅读 · 0 评论 -
shell下的第一个编程(不一样的1到100累加)
相信对于一个程序“猿”来说,除了我们入门的“hello world”之外,最简单的代码就是只有从1累加到100这样简单的程序吧,没错这样的程序在现在来看或许根本不如我们的法眼,那么问题来了,如何使用shell脚本实现从1累加到100?在实现基本的1到100累加上如何使输出结果显示为1+2+. . . +100=5050,下面就来看一下如何使用shell脚本实现题目的要求。首先要进行1到100的原创 2017-07-13 20:09:19 · 7103 阅读 · 0 评论 -
linux下的crond&&crontab
基本概念(1)crond和crontab是不可分割的,crontab是一个命令,常用于Unix/Linux系统之中,用于设置周期性被执行的指令。(2)crontab命令常用于从标准输入设备中读取指令,并将其存放于“crontab”文件中,方便今后的读取和查询。(3)crond则正是crontab的守护进程。功能:crontab在一定的时间间隔调度一些命令原创 2017-06-26 15:24:57 · 1567 阅读 · 0 评论 -
终端与作业控制
进程组 1)简单来说进程组就是多个进程组成的集合 2)和进程一样,进程有唯一的PID进行表识,同样进程组也有一个唯一的标识就是进程组ID,即每个组长的ID(组长ID一般是该组的第一个进程的ID)3)进程组的生命周期:一个进程组是用组长ID进行标识的,但是不要错误的认为组长进程结果,该进程组就结束;而进程组的生命周期是取决于该组中最后一个退出的进程,只要该组还有一个进程就认为该进原创 2017-06-26 23:11:03 · 629 阅读 · 0 评论 -
守护进程&创建
守护进程守护进程也称为精灵进程,是一种运行在后台的特殊进程。和其他后台进程所不同的是,它始终独立其他会话,自成会话组,不受系统登录和注销的影响,一般都是7*24小时在后台运行的,并且守护进程是去关联的(因为不需要和前台服务进行交互)背景知识建立新会话:setsid()函数原型:#include pid_t setsid(void); //返回值:若成功则返回进程原创 2017-06-27 14:05:08 · 854 阅读 · 0 评论 -
shell下的命令代替
命令替换是指Shell 执行命令并将命令替换部分替换为执行该命令后的结果shell下的命令代替为"``(反引号)"和"$()"使用单反引号的替换方式执行结果替换成$()的方式执行结果两种命令代换方式比较1、两种方式都可以进行转义2、两种方式都可以进行内嵌,不过S()不需要转义,不容易出错,单反引号的方式容易出现混淆,所以推荐使用$原创 2017-07-18 12:51:03 · 538 阅读 · 0 评论 -
getopt函数簇
(一)在Linux中,用命令行执行可执行文件时可能会涉及到给其加入不同的参数的问题,例如:./a.out -a1234 -b432 -c -d程序会根据读取的参数执行相应的操作,在C语言中,这个功能一般是靠getopt()这个函数,结合switch语句来完成的,首先来看下面的代码:#include #include int main(int转载 2017-07-19 13:15:21 · 359 阅读 · 0 评论 -
Linux下的信号(二)
在前面的Linux信号(一)那篇博客中,很多基本的信号知识已经作了详细的总结,在此就不在赘述前面的内容,如果还未掌握的大朋友们可以点击前文进行学习:http://blog.youkuaiyun.com/double_happiness/article/details/72848372信号的四种产生方式(一)通过键盘上的某些组合键完成(二)由硬件产生信号****前面两种在上一篇中原创 2017-06-07 15:23:41 · 784 阅读 · 0 评论 -
深入理解信号阻塞实现原理
相关博文:Linux下的信号(一)http://blog.youkuaiyun.com/double_happiness/article/details/72848372Linux下的信号(二)http://blog.youkuaiyun.com/double_happiness/article/details/72897148信号在内核中的表示信号递达(Deliver原创 2017-06-07 13:57:40 · 4603 阅读 · 0 评论 -
GDB调试下的多进程与多线程
主要方法1、attach方法2、follow-fork-mode方法背景知识首先要进行调试,我们就不得不先搞清楚调试的一些基本操作。gdb(Linux调试器)使用(1)产生调试信息:要进行代码的调试,就需要有调试信息,要产生调试信息,就需要在源代码生成时添加-g选项;(2)调试的开始和退出开始调试:gdb file(file表示要进行原创 2017-06-02 19:54:48 · 1155 阅读 · 0 评论 -
linux下的常见命令
cd【change directory】 进入个人的主目录cd /home 进入 '/ home' 目录' cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在的目录 ls 【list】 查看目录中的文件 ls -l 显示文件和目录的详细资料 ls-a :Linux上的文件以“.”开头的文件被系统视为隐藏文件,仅用ls原创 2017-04-07 15:53:13 · 545 阅读 · 0 评论 -
task_struct结构体成员小结
背景概念task_stuct结构体被称为进程描述符,用来管理进程Linux内核的进程,这个结构体包含了一个进程所需的所有信息。它定义在include/linux/sched.h文件中。可以说它是linux内核源码中最复杂的一个结构体了,成员最多,占用内存最大。进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上原创 2017-04-07 17:17:46 · 940 阅读 · 0 评论 -
浅析FILE和fd之间的关系
背景知识fd——文件描述符FILE——文件指针文件描述符fdfd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针file,因此在Linux系统下面,文件描述符主要是被用来标识一个文件。内核通过文件对象表来管理系统中各种各样的文件,而文件表则是通过指针来指向打开的文件,进而达到管理整个文件系统的目的。原创 2017-05-04 14:11:50 · 1795 阅读 · 0 评论 -
fork与vfork创建进程的区别
进程创建的方式:(1)fork函数(2)vfork函数fork函数头文件:#include函数原型:pid_t fork(void);返回值:创建成功子进程返回0,父进程返回子进程的PID;创建失败,返回-1;fork用法:(1)父进程希望创建子进程,让父子进程执行不同的代码;(2)一个进程要执行不同的分支;f原创 2017-05-04 19:24:20 · 936 阅读 · 0 评论 -
【通信方式一】管道
引进原因:由于各个进程之间是相互独立的,这样虽然有助于程序内部自己的处理,同时也避免各个进程之间相互影响,但是有时候程序之间就是需要进行一些信息传递,这时就需要相办法来实现这些不同进程之间的通信。管道就是为了解决这种问题应用而生的一种最基本的IPC机制。管道基本信息系统调用函数pipe头文件:#include函数原型:int pipe(int fil原创 2017-05-15 11:32:47 · 1170 阅读 · 0 评论 -
Linux下的管道组织管理与容量测试
管道通信方式实现:http://blog.youkuaiyun.com/double_happiness/article/details/71685414在学习完管道的通信方式之后,我们知道管道是用来实现进程之间的相互通信的机制,接下来为了更深一步的学习管道的底层实现,我们需要知道Linux下管道是如何进行组织和管理的,同时管道容量也是必须知晓的一个重要参数,该参数可以在我们使用管道进行通信时原创 2017-05-15 13:19:14 · 947 阅读 · 0 评论 -
Linux下的各种id
分类用户标识符:几个典型进程的ID及其类型和功能常见标识符的返回值#include#includepid_t getpid(void); //返回调用进程的IDpid_t getppid(void); //返回调用进程的父进程IDuid_t getuid(void); //返回调用进程的实际用户IDui原创 2017-05-06 22:16:59 · 1703 阅读 · 0 评论 -
atexit函数总结
函数名:atexit头文件:#include 函数原型:int atexit( void (*func)(void) );功能:当程序终止执行时,函数调用函数指针func所指向的函数。可以执行多重调用(至少32个),这些函数以其注册的倒序执行。执行成功返回零值,失败则返回非零值。在Linux的帮助文档中我们可以看到,当该注册函数结束时,需要调用exit(3)原创 2017-04-24 23:50:26 · 856 阅读 · 0 评论 -
Linux背景设置
桌面背景设置对于Linux的CentOs系统,刚进入时系统默认的生成的背景如下显然对于一些比较有艺术欣赏的人来说,这个背景显然是很让人感到很不好受,所以下面就来看一下如何更换桌面背景(1)单击鼠标右键(2)双击鼠标左键选中Change Desktop Background(3)选择你喜欢的图原创 2017-05-09 13:49:11 · 5650 阅读 · 3 评论 -
Linux常用工具安装和vim设置的命令实现
声明:本文是针对centos6.0的版本进行安装和设置的,在现在下载的Centos版本上基本上会自带一些基本的工具,因此在安装之前需要先进行检查,如果不存在,在进行下载安装gcc安装(1)检查是否有gcc(2)存在;如果不存在则需要在联网的状态下,使用命令:yum install gccg++的安装(1)检查是否有原创 2017-05-09 15:45:53 · 859 阅读 · 0 评论 -
Linux实现生产者消费者模型
生产者消费者模型简单来说就是“321原则(并非某一规则,而是为了理解生产者消费者模型)”“3”代表的是三种关系生产者与消费者的互斥与同步关系生产者与生产者的互斥(或竞争)关系消费者与消费者的互斥(或竞争)关系“2”代表两种角色生产者:往交易场所放东西(在计算机中一般都是数据)的人消费者:从交易场所取东西的人“1”代原创 2017-06-01 11:35:03 · 13621 阅读 · 1 评论 -
Linux下的文件操作权限
Linux下进入一个目录需要什么权限?普通用户下:首先我们在普通用户下,取消文件code的所有权限chmod 000 code当我们执行cd code想进入当前目录时,发现权限不允许。接下来我们为拥有者赋予读的权限当我们cd code 想进入当前文件时,发现依旧没有权限。接下来给予拥有者写的权限当我们cd code想进入当前文件时,发现依旧没有权原创 2017-03-19 21:26:03 · 1103 阅读 · 0 评论