- 博客(21)
- 收藏
- 关注
原创 套接字实现TCP服务器
在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标示网络通讯中的一个进程,“IP地址+端口号”为socket(套接字)
2017-07-29 14:26:54
362
原创 命令代换及eval命令
shell中的命令代换符号有反引号和$() 反引号,在执行时,会将其中的语句作为命令执行一遍,将执行结果代到原来的命令中。
2017-07-12 15:38:35
340
原创 NAT技术与代理服务器
NAT技术又叫网络地址转换(Network Address Translation),是虚拟专用网(VPN)用来和因特网进行访问与交流所采用的技术。VPN虚拟专用网,因因特网的不安全,于是用ip隧道通过因特网将一个公司所在的不同专用网连接起来,当两边进行交流是对数据进行加密,通过因特网到达对面时,对数据进行解密,从而保证了数据的安全性。
2017-07-10 14:51:50
214
原创 TCP首部的URG与PSH及其区别
URG和PSH属于TCP中的标志位。 URG:表示本报文发送的数据中是否有紧急数据,URG=1,表示有紧急数据,紧急指针字段只有在URG=1时有效。
2017-06-30 13:42:55
431
原创 守护进程及守护进程中两次fork问题
守护进程(daemon)也称为精灵进程,是运行在后台的一种特殊程序。独立于终端控制且周期性地执行某种任务或等待处理某些发生的时间。 守护进程一般7*24小时运行,因为守护进程自成会话,故不受用户注销登录影响,在命名上通常以d结尾。
2017-06-27 15:43:29
488
原创 子进程的异步等待方式
信号:Linux中的信号是一种时间通知机制,告诉某事件发生,并说明如何发生。 利用kill -l 指令可以查看信号,其中1——31为普通信号,34——64为实时信号。等待分为阻塞式等待和非阻塞式等待,我们用非阻塞式等待实现异步。 一个子进程退出时,子进程会主动向父进程发送SIGCHLD信号,父进程一般忽略。我们队SIGCHLD信号进行捕捉。
2017-06-27 10:20:51
256
原创 浅谈crond服务及crontab用法
Crond是Linux用来定期执行命令或指定程序任务的一种服务或软件。Crond服务会定期(默认每分钟检查一次)检查系统中是否有要执行的任务工作。如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作。这个Crond定时任务服务就相当于我们早上使用的闹钟一样。
2017-06-26 17:33:49
349
原创 线程安全与可重入函数对比
线程是系统调度的最小单元,进程是资源分配的最小单元,通常一个进程可以派生出多个线程,各线程间之间相互独立,共享系统资源,提高了CPU的利用率。线程主要由控制流程和资源使用两部分构成,因此一个不得不面对的问题就是对共享资源的访问。为了确保资源得到正确的使用,开发人员在设计编写程序时需要考虑避免竞争条件和死锁,需要更多地考虑使用线程互斥变量。
2017-06-11 14:29:35
375
原创 gdb调试多进程多线程程序
默认情况下调试多进程程序时gdb只会调试主进程,但是gdb也是支持多进程多线程同时调试的。只需设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。
2017-06-11 13:13:44
291
原创 进程间通信之管道通信(匿名管道)
Linux中,每个进程都有各自的地址空间及自己的用户级页表,映射到物理内存的不同地方,因此进程间互不影响,即进程间相互独立。那么不同的进程要如何实现进程间通信呢?也就是进程间通信的本质,就是不同的进程通过看到公共资源来实现进程间通信,而这里的公共资源一般由操作系统提供,不同的提供者、提供方式也决定了通信方式的不同。
2017-05-12 17:39:43
540
原创 Linux中atexit()在有多个自定义函数时对函数的调用顺序验证
Linux下的函数介绍为atexit函数为注册函数,提供注册机制,在进程终止的时候被调用,所传参数为函数指针。但是要注意的是exit调用这些注册函数的顺序与它们登记时候的顺序是相反的。同一个函数如若登记多次,也会被调用多次。
2017-04-28 20:17:07
506
原创 Linux下僵尸进程和孤儿进程模拟
首先,介绍一下僵尸进程与孤儿进程定义:僵尸进程:一个子进程在其父进程没有调用wait()或waitpid() 的情况下退出,子进程就是僵尸进程,不及时回收僵尸进程会造成内存泄漏。
2017-04-16 22:37:02
385
原创 Linux下的 task_struct内容
所有的进程信息都被放在了一个结构体中,这个结构体叫做进程控制块。 每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。
2017-04-11 20:32:07
739
原创 Linux里vim简单配置文件
vim是Linux下的编辑器,可以根据个人需要配置成自己喜欢的样子,下面简单介绍一下我的配置。首先,在当前用户目录下添加.vimrc文件,打开文件,就可以进行配置文件的编写了,当然,所系配置只对在当前目录下文件进行vim编辑时有效,即缩写配置文件只作用于当前用户的vim。
2017-03-29 20:51:47
626
原创 Linux下的find指令解析
在Linux下,find命令用来在目录结构中搜索指定文件并执行指定操作,它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。 find基本语法为: find pathname -optionns [-print -exec -ok...]
2017-03-21 19:53:46
363
原创 Linux中目录权限以及stat查看文件信息时的Access time,Modify time,Change time解析
我们知道在Linux中目录也是文件,而对文件的操作需要有相关的权限。 ①读:r/4,read对文件而言具有读取文件内容的权限。 ②写:w/2,write对文件具有修改文件内容的权限。 ③执行:x/1,execute对文件具有执行文件的权限。 那么在目录中是否也同样如此呢?
2017-03-14 18:01:28
1144
原创 继承小结
一、继承概念 继承(inheritance)机制是面向对象程序设计使代码可以重复使用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承。 继承,通俗的讲可以看做遗传,儿子具有和父亲相同的部分我们通常称为是从父亲那儿遗传得
2016-10-24 23:04:38
219
原创 this指针与构造函数
this指针this指针含义及用法:1、this指针是指向每一个成员函数的特殊指针,当不同的对象调用同一个类的成员函数代码时,编译器会依据该成员函数的this指针所指向的不同对象来确定应该引用哪个对象的数据成员;2. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针,然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针;3. 在C++中,this指
2016-09-27 11:29:34
447
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人