
linux
文章平均质量分 69
ZHY_xz
这个作者很懒,什么都没留下…
展开
-
文件粘滞位(粘着位)的作用
1.什么是粘滞位? 如图: 图中红线位置的 t 就是粘滞位。也叫粘着位。2.为什么产生粘滞位? 在linux下他有一个/tmp目录,它用来存放每个用户所创建的临时文件。也就是说每个用户都对这个/tmp目录有一个 写 的权限。那么,如果一个用户在/tmp下创建了一个文件,而这个文件却被另一位用户删了。那这样就出现了一个很大的安全问题,而粘滞位就很容易解决这个问题。3.粘滞位的原创 2017-03-28 17:35:54 · 1597 阅读 · 0 评论 -
多进程、多线程服务器
本篇博客将介绍基于IPv4的socket网络编程。 一、socket1.概念: socket这个词可以表示很多概念:在TCP/IP协议中,“IP地址 + TCP或UDP端口号”唯一标识网络通信中的一个进程,“IP地址 + 端口号”就叫做socket。 在TCP协议中,建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个一个连接,soc原创 2017-07-05 17:10:38 · 922 阅读 · 0 评论 -
CRC校验(循环冗余校验码)
一、概念: CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。二、工作原理: 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这原创 2017-06-21 14:23:53 · 2985 阅读 · 1 评论 -
死锁问题?
1. 什么是死锁? 如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么改组进程就是死锁的。 也就是说,在一组进程发生死锁的情况下,这组死锁进程中的每一个进程,都在等待另一个死锁进程所占有的资源,或者说每个进程所等待的事件是该组中其他进程释放所占有的资源。但由于所有这些进程都已无法运行,因此它们谁也不能释放资源,致使没有任何一个可以被唤醒。这样这组进程只能无限期待的等下原创 2017-06-08 13:54:36 · 337 阅读 · 0 评论 -
利用core文件对多线程和多进程进行调试
1.core文件的简单介绍 在一个程序崩溃时,他一般会在指定目录下生成一个core文件。core文件仅仅是一个内存映像(同时加上调试信息),只是用来调试的。2.开启或关闭core文件的生成 先使用ulimit -l 查看core文件是否可以生成。 我们发现可创建core文件的大小为0 kb。 ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创原创 2017-06-03 22:10:39 · 1076 阅读 · 0 评论 -
ARP协议【地址解析协议】
一、概念 ARP协议,即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。 主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。 地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP原创 2017-06-28 22:27:47 · 1113 阅读 · 0 评论 -
创建守护进程
守护进程也称精灵进程,是运行在后他的一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。守护进程是一种很有的进程,linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond等。 linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端,不能直原创 2017-06-16 17:21:57 · 279 阅读 · 0 评论 -
atexit函数解析
进程终止的方式有8种,如下所列出,其中前5种是正常的终止,后三种是异常的终止: 1.从main函数返回 2.调用exit函数 3.调用_exit函数或者_EXIT函数 4.最后一个线程从启动历程返回 5.最后一个线程调用pthread_exit 6.调用abort函数 7.接到一个信号并终止 8.最后一个线程对取消请求做出响应exit(原创 2017-05-06 00:10:03 · 362 阅读 · 0 评论 -
Linux 进程描述符task_struct详解
在linux中每一个进程都有 tast_struct数据结构来定义。test_struct就是我们通常所说的PCB。他是对进程控制的唯一手段也是最有效的手段。当我们调用fork()时,系统会为我们产生一个tast_struct结构。然后从父进程那里继承一些数据,并把新的进程插入到进程树中以待进行进程管理。因此了解task_struct的结构对于我们理解进程调度的关键。在进行剖析task_struct原创 2017-04-12 21:20:44 · 751 阅读 · 0 评论 -
文件描述符与文件指针
首先看下下面函数:FILE* fopen(const char* path, const char* mode) 我们看它的返回值,当文件顺利打开后,指向该流的文件指针就会被返回,也就是说这个函数返回值为 FILE* 类型(文件指针类型)。再看另一个函数:int open(const char* pathname, int flags)int open(const char* pathnam原创 2017-05-11 00:36:31 · 387 阅读 · 0 评论