linux
文章平均质量分 73
qq_31833457
天下之大,总有你的容身之处
展开
-
SIGHUP信号与控制终端
原文地址已经找不到了SIGHUP信号与控制终端UNIX中进程组织结构为 session (会话)包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程。一个session可能会有一个session首进程,而一个session首进程可能会有一个控制终端。一个进程组可能会有一个进程组首进程。进程组首进程的进程ID与该进程组ID相等。这儿是可能会有,在一定情况之下是没有的。与终转载 2017-12-03 15:59:26 · 554 阅读 · 0 评论 -
守护进程
原文地址:http://blog.csdn.net/lianghe_work/article/details/47659889什么是守护进程?守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。转载 2017-12-03 15:50:58 · 158 阅读 · 0 评论 -
Linux下清空缓冲区的方法
原文链接已经失效.....Linux下清空缓冲区的方法 C标准规定fflush()函数是用来刷新输出(stdout)缓存的。对于输入(stdin),它是没有定义的。但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了fflush( stdin )的实现应当查找它的手册。 GCC编译器没有定义它的实现,所以不能使用fflush转载 2017-12-03 15:34:23 · 943 阅读 · 0 评论 -
exec函数
已经转载了一篇exec函数的文章,这里补充一些。exec函数的第二个参数好像只能用"./xx"当前目录下的可执行文件,至于为什么我也不是很懂,以后遇见了再说吧。FD_CLOEXEC,标志默认是关闭的。可以再open里打开,或者fcntl。如果文件已经存在,再次create+trunc,属性是不变的,O_TRUNC(配合只写或者读写才会更新文件) 若文件存在, 将其长度缩为0, 属性不变原创 2017-12-03 15:28:36 · 203 阅读 · 0 评论 -
linux内核之进程的基本概念(进程,进程组,会话关系)
原文地址:https://www.cnblogs.com/zengyiwen/p/5755191.html笨拙的菜鸟linux内核之进程的基本概念(进程,进程组,会话关系)进程是操作系统的一个核心概念。每个进程都有自己唯一的标识:进程ID,也有自己的生命周期。一个典型的进程的生命周期如图4-1所示。进程都有父进程,父进程也有父进程,这转载 2017-12-02 17:32:24 · 375 阅读 · 0 评论 -
终端、虚拟终端、shell、控制台、tty的区别
原文地址:http://blog.csdn.net/ltx06/article/details/52170852最近开始接触Linux,终端、虚拟终端、shell、控制台、tty等概念让我很混乱,有必要认识清楚。今天看到有人问终端和控制台的区别,而且这个问题比较有普遍性,因此想抽出一点时间来解释一下这两个术语的区别。 终端,英文叫做terminal ,通常简称为term转载 2017-12-02 17:30:51 · 667 阅读 · 0 评论 -
进程控制之exec函数
原文地址:http://www.cnblogs.com/nufangrensheng/p/3510821.html用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进转载 2017-12-02 17:30:06 · 372 阅读 · 0 评论 -
fork之后子进程到底复制了父进程什么
原文地址:http://blog.csdn.net/xy010902100449/article/details/44851453[cpp] view plain copy #include #include #include #include void main() { char str[6]="hello"; pid_t转载 2017-12-02 17:28:26 · 1869 阅读 · 0 评论 -
利用alarm()和pause()函数实现sleep()函数
原文地址:http://blog.csdn.net/yuzhihui_no1/article/details/44855419sleep()是执行挂起一段时间,而alarm()函数是定时器,pause()函数则是挂起进程,当出现信号打断时,才会继续往前执行; 先来分享下alarm()函数,alarm()函数用来设置一个定时器,当时间超时时,会产生SIGALRM信号,该信号默认转载 2017-11-23 00:52:02 · 1545 阅读 · 0 评论 -
signal、sigaction,信号集操作函数
原文地址:http://blog.csdn.net/guoping16/article/details/6583957信号是与一定的进程相联系的。也就是说,一个进程可以决定在进程中对哪些信号进行什么样的处理。例如,一个进程可以忽略某些信号而只处理其他一些信号;另外,一个进程还可以选择如何处理信号。总之,这些总与特定的进程相联系的。因此,首先要建立其信号和进程的对应关系,这就是信号的转载 2017-11-22 22:20:51 · 252 阅读 · 0 评论 -
open和fopen的区别
原文地址:http://blog.csdn.net/qq_21792169/article/details/50160857open和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存转载 2017-12-01 20:07:47 · 211 阅读 · 0 评论 -
Linux tcpdump命令详解
原文地址:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议转载 2017-12-01 17:45:46 · 185 阅读 · 0 评论 -
dup & dup2
说明:part.0 :原创part.1:转载part.2:转载part.3:原创-------------part.0----------------------int dup(int oldfd);//创建一个newfd,newfd指向oldfd的位置,并且dup返回的文件描述符总是取系统当前可用的最小整数值int dup2(int oldfd, in原创 2017-12-03 17:18:03 · 2211 阅读 · 0 评论 -
守护进程中/dev/null
原文链接:http://blog.csdn.net/drdairen/article/details/52586954有人认为对于后台守护进程做此类重定向操作浪费资源,建议直接关闭0、1、2号句 柄拉倒,这是非常不正确的。假设它们确实被关闭了,则一些普通数据文件句柄将等 于0、1、2。以2号句柄为例,某些库函数失败后会向2号句柄输出错误信息,这将破 坏原有数据。 1、如下代转载 2017-12-03 17:55:35 · 748 阅读 · 0 评论 -
《UNIX环境高级编程》笔记--sigsuspend函数
原文地址:http://blog.csdn.net/todd911/article/details/17319591#include #include static void sig_int(int); int main(void){ sigset_t newmask,oldmask,waitmask; printf("progra转载 2017-11-23 19:26:40 · 145 阅读 · 0 评论 -
od命令
od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无...转载 2018-09-02 14:42:22 · 1212 阅读 · 0 评论 -
time命令
time命令用于统计给定命令所花费的总时间。语法time(参数)参数指令:指定需要运行的额指令及其参数。实例当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如:[root@localhost ~]# time lsanaconda-ks.cfg instal...转载 2018-09-02 13:24:02 · 1051 阅读 · 0 评论 -
ubuntu配置ntp服务器
安装命令:sudo apt_get ntp我电脑安装完出错:解决办法:------------------------------------------------------配置:(原文:https://www.cnblogs.com/xwdreamer/p/3448773.html)# /etc/ntp.conf, configuration for nt原创 2017-11-27 22:02:09 · 1944 阅读 · 0 评论 -
页表及内存映射
原文地址找不到了用户空间:0x00000000~0xbfffffff内核空间:0xc0000000~0xffffffff内核前896M线性空间:0xc0000000~0xc0037fff 页目录表swapper_pg_dir系统启动时会先用这个目录表的前两项初始化前8M的物理空间,分别映射到用户空间和内核空间的转载 2017-12-06 02:40:17 · 1240 阅读 · 0 评论 -
临时内核页表的建立过程
原文地址:http://lib.csdn.net/article/operatingsystem/30678Motivation:当内核被解压到线性地址0x100000后,为了继续启动内核,即启动内核的第一个swapper进程,内核需要建立一张临时页表供其使用。当内核从16位的实模式进入保护模式(通过在汇编代码中的setup函数中设置linux的cr0寄存器的PE位),内核要创转载 2017-12-06 02:04:38 · 307 阅读 · 0 评论 -
共享内存
共享内存区是可用IPC形式中最快的,一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核。在另一篇文章点击打开链接中已经提到了,mmap的内部机制。少了用户空间到内核空间的数据复制,内核的缺页故障,触发中断处理程序,通过映射关系在磁盘读取数据。mmap,munmap,msync函数之前的文章已经说过了,这里增加一些新的内容:1> 4.4SBD匿名内原创 2017-11-25 20:18:50 · 454 阅读 · 0 评论 -
posix下的消息队列
mq_open,mq_close,mq_unlink函数#include |mqd_t mqopen( const char * name,int oflag,... /* mode_t mode,struct mq_attr *attr */)原创 2017-11-23 22:44:34 · 346 阅读 · 0 评论 -
深究标准IO的缓存
能找到的最"源头"的原文地址了:http://blog.sina.com.cn/s/blog_6592a07a0101gar7.html文章很不错,但没有图片,代码也不能直接用,所以自己做了修改-----------------------------------------------------------一、IO缓存 系统调用:只操作系统提供给用户程序调用的一组接口--转载 2017-12-07 00:20:33 · 336 阅读 · 0 评论 -
进程的入口函数 & 线程进程的关系
----在线程里调用exit(0)只是结束这个线程,还是结束应用程序??>>结束整个应用程序,子线程要结束的话 return线程函数。进程的入口函数中,result=main(); exit(result)直接就关闭应用程序,结束进程了。所以,无论哪个线程执行exit(),进程都会结束。----exit与return的区别?>>http://blog.csdn.net/qq_3原创 2017-12-04 17:29:21 · 877 阅读 · 0 评论 -
多线程情况下,主线程先退出,子线程会被强制退出吗
原文地址已经找不到了1、进程中线程之间的关系线程不像进程,一个进程中的线程之间是没有父子之分的,都是平级关系。即线程都是一样的, 退出了一个不会影响另外一个。但是所谓的"主线程"main,其入口代码是类似这样的方式调用main的:exit(main(...))。main执行完之后, 会调用exit()。exit() 会让整个进程over终止,那所有线程自然都会退出。转载 2017-12-04 17:22:05 · 1900 阅读 · 0 评论 -
exit和return的区别
原文地址:http://blog.csdn.net/firefly_2002/article/details/79605951. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。3.转载 2017-12-04 17:17:51 · 634 阅读 · 0 评论 -
信号中断 与 慢系统调用
原文地址:http://blog.csdn.net/benkaoya/article/details/172620531. 术语1.1. 慢系统调用(Slow system call)该术语适用于那些可能永远阻塞的系统调用。永远阻塞的系统调用是指调用永远无法返回,多数网络支持函数都属于这一类。如:若没有客户连接到服务器上,那么服务器的accept调用就会一直阻塞。慢系统调用可以转载 2017-12-01 17:43:31 · 187 阅读 · 0 评论 -
linux之getopt 函数
原文地址:http://blog.csdn.net/mr_jj_lian/article/details/6835137命令行参数解析函数 —— getopt()getopt()函数声明如下:#include int getopt(int argc, char * const argv[], const char *optstring);extern c转载 2017-11-22 15:33:18 · 165 阅读 · 0 评论 -
Signal ()函数详细介绍
原文地址:http://blog.csdn.net/yockie/article/details/517297741. 功能设置某一信号的对应动作2. 声明#include typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);1233. 参数说转载 2017-11-19 02:39:21 · 232 阅读 · 0 评论 -
关于FILE_MODE值的问题
原文地址:http://blog.sina.com.cn/s/blog_803527e70100v3b7.html众所周知,FILE_MODE是一个宏,它经常定义成如下形式; #define FILE_MODE(S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH) 定义成这样的意思是:允许用户读、写;组成员只读和其他用户只读。这些权限位会转载 2017-11-18 23:28:19 · 3351 阅读 · 0 评论 -
System V 与 POSIX
原文:http://blog.csdn.net/firstlai/article/details/50705042System V 以及POSIX 对信号量、共享内存、消息队列等进程之间共享方式提供了自己的解决方案。因此,在学习时难免存在疑惑,到底有什么区别,哪种方式更佳。经过网上搜索各种博客,做出简单的总结。历史 UNIX两大贡献者贝尔实验室和BSD,在进程之间通信侧转载 2017-11-18 21:35:52 · 209 阅读 · 0 评论 -
pthread_cleanup_push()/pthread_cleanup_pop()的详解
一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。不论是可预见的线程终止还是异常终止,都会存在资源释放的问题,在不考虑因运行出错而退出的前提下,如何保证线程终止时转载 2017-11-18 21:22:54 · 208 阅读 · 0 评论 -
互斥锁加条件变量解决生产者消费者问题
代码如下,过两天更新信号量解决的代码#include #include #include #include //#include "/usr/wang/dir/unpv22e/lib/set_concurrency.c"#include #include //#include "unpipc.h"using namespace std;#define BUF_MAX 200原创 2017-11-18 01:38:56 · 449 阅读 · 0 评论 -
unpipc.h
原文地址:http://blog.chinaunix.net/uid-27164517-id-3320677.html1. 编译原书所带例子: unpv22e.tar.gz 下载地址:http://www.kohala.com/start/unpv22e/unpv22e.tar.gz 2. 解压: $tar -zxvf unpv22e.tar.gz 3. 编转载 2017-11-18 00:55:45 · 349 阅读 · 0 评论 -
struct timespec 和 struct timeval
转自:http://www.cnblogs.com/book-gary/p/3716790.html time()提供了秒级的精确度 .1、头文件 2、函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 用time()函数结合其他函数(如:localtime、gmtime、asctime转载 2017-11-18 00:54:37 · 194 阅读 · 0 评论 -
mmap内存映射
转载两篇文章:Linux 内存映射函数 mmap()函数详解linux内存映射mmap原理分析 一、概述 内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间用户空间两者之间需要大量数据传输转载 2017-11-12 17:05:39 · 1241 阅读 · 0 评论 -
Linux(C/C++)下的文件操作open、fopen与freopen
Linux(C/C++)下的文件操作open、fopen与freopenopen是linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲。linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系统调用open。所以在linux下如果需要对设备进行明确的控制,那最好使用底层系统调用(open),转载 2017-11-12 20:21:20 · 434 阅读 · 0 评论 -
MakeFile介绍
makefile 介绍make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。首先,我们用一个示例来说明makefile的书写规则。以便给大家一个感性认识。这个示例来源于gnu的make使用手册,在这个示例中,我们的工程有8个c文件,和3个头文件,我们要写一个makefile来告诉make命令如何编译和链接这几个文件。我们的规则是:1)如果这个工程转载 2017-11-09 21:47:32 · 95 阅读 · 0 评论 -
linux中fork()函数详解
原文地址:http://blog.csdn.net/jason314/article/details/5640969最后自己补充了一张图,方便理解。 一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。转载 2017-11-09 20:47:50 · 131 阅读 · 0 评论 -
linux shell脚本EOF妙用
在平时的运维工作中,我们经常会碰到这样一个场景:执行脚本的时候,需要往一个文件里自动输入N行内容。如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢之极了!这个时候,就可以使用EOF结合cat命令进行行内容的追加了。下面就对EOF的用法进行梳理:EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不转载 2017-11-08 02:58:14 · 409 阅读 · 0 评论