![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
qinghe0808
努力就是不厌其烦的重复。
展开
-
【Linux】Linux下实现一个简单的进度条程序
相信大家都下载过东西,那么大家肯定都见过那该死的进度条,每次见到它缓慢的增长都想原地爆炸,那大家有没有想过进度条是怎样实现的?通过以下的分析,会发现进度条的实现其实很简单。 而在实现进度条之前,我们先引入缓冲区的概念:标准I/O库的缓冲主要分为3种:全缓冲、行缓冲和不缓冲全缓冲:全缓冲就是当输入或输出时,当缓冲区被填满了之后,才会进行实际的I/O操作。行原创 2017-04-08 16:14:50 · 345 阅读 · 0 评论 -
【Linux】详解CRC校验
1. CRC校验概念 CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。2.CRC校验原理 CRC校验原理看起原创 2017-06-27 18:25:28 · 1289 阅读 · 0 评论 -
【Linux】线程安全和可重入函数
可重入函数和不可重入函数 函数被不同的控制流程调用,有可能在第一次调用还没返回时就再次进入该函数,这称为重入。 当程序运行到某一个函数的时候,可能因为硬件中断或者异常而使得在用户正在执行的代码暂时中断从而转向内核态,当内核处理完异常这个时候如有一个信号需要被处理,调用sighandler函数切换至用户态处理这个信号,而处理这个信号的时候原创 2017-06-15 13:32:08 · 473 阅读 · 0 评论 -
【Linux】进程间通信--信号量
一. 什么是信号量 为了防止出现因多个程序同时访问一个共享资源而引发的问题,我们需要在任一时刻只能有一个执行线程访问代码的临界区域。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它,信号量它本质上是一个计数器,是用来统计临界区中临界资源数目的计数器。二.信号量的工作原理 (1)信号量在进程间传递的是个整数值。 (2)信号量是个二元信号量原创 2017-06-09 16:31:22 · 286 阅读 · 0 评论 -
【Linux】使用gdb调试多进程多线程程序
一、调试多进程 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。设置方法: set follow-fork-mode [parent|child]原创 2017-06-07 13:51:42 · 480 阅读 · 0 评论 -
【Linux】子进程的异步等待方式
前面的博客中我们也讲过了僵尸进程的概念,我们知道当一个父进程创建一个子进程时,最好要调用wait或者waitpid函数等待子进程,不然会产生僵尸进程造成内存泄漏的问题。一般父进程在等待子进程时有两种方式等待,一种是阻塞式等待,这时父进程不能处理自己的工作;另一种是以非阻塞式等待,父进程处理自己工作的同时,要以定时轮询的方式,去查看有没有子进程等待清理。wait()和waitpid()的区别<1>wa原创 2017-06-17 23:55:07 · 440 阅读 · 0 评论 -
【Linux】mysleep函数---普通版本与规避竞态条件版本
在实现mysleep函数之前,先介绍一下一会儿程序中要用到的函数。信号捕捉函数:sigaction函数 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作)。 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该使用这个接口)给信号signum设置新的信号处理函数act, 同时保留该信号原有的信号处理函原创 2017-06-16 23:05:19 · 304 阅读 · 0 评论 -
【Linux】linux下atexit()函数的使用
函数名: atexit头文件:#include功 能: 注册终止函数用 法: void atexit(void (*func)(void)); atexit函数是一个特殊的函数,它是在正常程序退出时调用,来对终止处理函数进行登记。我们把它叫为登记函数 。按照ISOC的规定,一个进程可以登记多达32个函数,这些函数的函数类型应为不接受任何参数的vo原创 2017-05-01 17:58:37 · 608 阅读 · 0 评论 -
【Linux】浅谈Linux下的PCB—task_struct结构体
11115555451315,。;原创 2017-04-15 15:34:47 · 1447 阅读 · 0 评论 -
【Linux】僵尸进程与孤儿进程
今天要给大家介绍两个悲伤的进程:僵尸进程和孤儿进程。话不多说,直接介绍。 之前的博客有讲过保存进程信息的一个重要的数据结构,task_struct结构体,其中,state表示进程可能出现的状态。如下:static const char * const task_ state _array[]={ R(running), S(slee原创 2017-04-18 17:34:00 · 324 阅读 · 0 评论 -
【Linux】Linux下的Access time/Modify time/Change time三个时间
1.Access time/Modify time/Change time这三个时间在Linux系统下,用stat指令可以查看文件信息,主要是可以查看inode的信息。文件显示的信息分别为: File:文件名 Size:文件大小 Blocks:文件使用的数据块总数IO原创 2017-03-25 16:06:04 · 1267 阅读 · 0 评论 -
【Linux】文件权限管理
问题:创建一个目录,进入目录,在目录里创建文件并ls显示出来各需要什么权限?1.创建目录需要什么权限?建一个目录temp,将目录文件属性的拥有者和所属组都设置成超级用户root(此操作要在root模式下执行) 回到普通用户模式,进入temp目录中创建一个目录看能否成功? 会发现没有权限,此时目录文件属性的拥有者和所属组都是root ,在当前普通用户模式下(即你自己)是没有没有权限在temp里新原创 2017-03-25 13:45:07 · 539 阅读 · 0 评论 -
【Linux】Linux下的黏滞位说明
1.黏滞位的背景 一般情况下,只要用户对目录有写权限,则可以删除其中的文件和子目录,即使该用户不是这些文件的所有者,而且也没有读或写许可。也就是说,只要对一个目录有写访问权,任何人都可以删除该目录中的文件。对于个别用户使用的目录,这种行为是很合理的。eg:1>进入超级用户(root)模式,创建一个mytest目录,并设置其权限为777原创 2017-03-31 21:38:04 · 336 阅读 · 0 评论 -
【Linux】linux下find指令的所有选项
Find指令它是Linux系统使用中的非常重要的一条指令,它也包含了很多选项。1.它的指令格式如下:find pathname -options [-printf -exec -ok ...] 2.指令功能:用于在文件树中查找文件,并做出相应的处理。3.指令中的参数: pathname:表示所要查找的目录路径.例如”.”表示当前目原创 2017-03-31 12:51:55 · 624 阅读 · 0 评论 -
【Linux】端口分类
什么是端口? 可以这样说:端口是计算机与外部通信的途径,没有它,计算机便又聋又哑。 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于原创 2017-06-25 00:16:22 · 907 阅读 · 0 评论