![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统与Linux
starbug
这个作者很懒,什么都没留下…
展开
-
创建守护进程
1 概述守护进程顾名思义就是默默运行在后台的进程。它具有以下特征:父进程是init没有和任何控制终端关联,所以也不会收到诸如SIGINT、SIGTSTP等信号2 创建守护进程2.1 步骤fork()创建子进程,父进程退出 这样做的2个目的:使调用程序的控制台结束挂起,可以继续执行使得新创建的进程不会成为进程组的leader1,原创 2013-12-07 15:08:13 · 573 阅读 · 0 评论 -
gdb常用命令
调用gdb编译需要在cc后面加 -g参数再加-o;[root@redhat home]#gdb 调试文件:启动gdb(gdb) l :(字母l)从第一行开始列出源码原文链接(gdb) break n :在第n行处设置断点(gdb) break func:在函数func()的入口处设置断点(gdb) info break: 查看断点信息(gdb原创 2014-03-26 13:53:14 · 498 阅读 · 0 评论 -
grep查找字符串
如果你想在当前目录下 查找"hello,world!"字符串,可以这样: grep -rn "hello,world!" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R 查找所有文件包含子目录-i 忽略大小写下面是一些有意思的命令行参数: grep -i pattern原创 2014-03-23 11:53:54 · 792 阅读 · 0 评论 -
栈溢出几种情况
一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。二、递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。三、指针或数组越界。这种情况最常见,例如进行字符串拷贝,或处理用户输入等等。原创 2014-03-27 15:42:24 · 14568 阅读 · 1 评论 -
shell实现
http://curley.blog.51cto.com/1627940/488361转载 2014-03-15 00:00:30 · 432 阅读 · 0 评论 -
死锁产生的原因及四个必要条件
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进原创 2014-03-13 23:24:54 · 628 阅读 · 0 评论 -
/proc文件系统
http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html原创 2014-03-12 21:22:38 · 558 阅读 · 0 评论 -
GDB中应该知道的几个调试方法
转自http://coolshell.cn/articles/3643.html七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充转载 2014-03-03 00:25:42 · 551 阅读 · 0 评论 -
两次fork防止僵尸进程
1、何谓僵尸进程? 在linux系统中,一个已经终止但父进程尚未对其进行善后处理(释放子进程相关信息占用的资源)的子进程叫做僵尸进程 。子进程结束时,父进程调用pid_t wait(int *statloc)或者pid_t waitpid(pid_t pid,int *statloc,int options)获取内核中为子进程保存的信息(进程id,终止状态)。2、僵尸进原创 2014-03-02 23:28:34 · 1060 阅读 · 0 评论 -
linux下利用valgrind工具进行内存泄露检测和性能分析
http://blog.csdn.net/yanghao23/article/details/7514587转载 2014-03-01 20:12:19 · 559 阅读 · 0 评论 -
linux进程间通讯的几种方式的特点和优缺点,和适用场合。
转自http://blog.csdn.net/love_gaohz/article/details/66366611.# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量转载 2014-03-01 16:00:49 · 719 阅读 · 0 评论 -
linux 多线程面试题
http://blog.csdn.net/lanyan822/article/details/7586845http://blog.csdn.net/lanyan822/article/details/7587972http://blog.csdn.net/morewindows/article/details/7392749原创 2014-01-11 20:31:41 · 617 阅读 · 0 评论 -
epoll详解
转自http://blog.chinaunix.net/uid-24517549-id-4051156.html什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44)转载 2014-01-06 19:59:03 · 718 阅读 · 0 评论 -
Epoll在LT和ET模式下的读写方式
转自http://www.ccvita.com/515.html在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource tempo转载 2014-01-06 20:12:30 · 539 阅读 · 0 评论 -
epoll源码结构分析
要理解epoll,最关键的就是它的结构设计,所以这里先从epoll的结构出发,请看下面一副简化的结构及联系图:先介绍一下图中涉及到的各种结构体:先说明一下epitem结构体是什么,顾名思义,即为epollitem,epoll的基本单元,下面分别介绍一下几个主要的变量的含义:struct list_head rdllink,或者取名为ready转载 2014-01-06 20:55:33 · 608 阅读 · 0 评论 -
epoll介绍及程序实例
转自http://blog.csdn.net/sparkliang/article/details/4770655Linux Epoll介绍和程序实例1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发转载 2014-01-02 22:20:17 · 566 阅读 · 0 评论 -
grep使用
。。。。原创 2013-12-06 20:23:22 · 469 阅读 · 0 评论 -
关于linux内核的几个面试问题
1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内存的函数有?7) Linux的内核空间和用户空间是如何划分的(以32位系统为例)?8) vmalloc()申请的内存有什么特点?原创 2013-12-10 11:44:25 · 1054 阅读 · 0 评论 -
shell统计文件夹代码行数
最粗略版Shell代码 find . -name "*.java"|xargs wc -l|grep "total"|awk '{print $1}' find . -name "*.java"|xargs cat|wc -l #Output:37634 上面的两句效果一样,只不过第二种是先利用cat将多个java文件的内容合并输出了原创 2014-06-08 20:20:22 · 1209 阅读 · 0 评论