
Linux
文章平均质量分 65
windyblankboy
这个作者很懒,什么都没留下…
展开
-
Linux 中实现进度条
想要实现进度条的小程序,首先必须知道:(\r以及\n的区别)在Windows操作系统下:Enter键我们都知道是换行的意思,实际上不是的,它的意思是回车换行\r 回车:使光标回到这一行的行首\n 换行:使光标到下一行如果按照数学上的观点去描述的话;在一个坐标轴上,\r 改变x轴使其到零点,y轴不变原创 2016-05-31 22:05:33 · 526 阅读 · 0 评论 -
shell脚本
用shell脚本语言写了两个小程序,贴出来希望大家指点:实现简单的进度条:运行结果:接下来,在file文件中,有三个数,找出最大、最小以及平均数运行结果:欢迎大家提意见!原创 2016-08-18 20:57:30 · 317 阅读 · 0 评论 -
Linux中的进程组、作业以及会话
进程组 每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。 通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯 一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于其进程ID。 组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是原创 2016-08-04 13:18:36 · 706 阅读 · 0 评论 -
可重入函数和线程安全
可重入函数当捕捉到信号时,不论进程的主控制流程当前执行到哪儿,都会先跳到信号处理函数中执行,从信号处理函数返回后再继续执行主控制流程。信号处理函数是一个单独的控制流程,因为它和主控制流程是异步的,二者不存在调用和被调用的关系,并且使用不同的堆栈空间。引入了信号处理函数使得一个进程具有多个控制流程,如果这些控制流程访问相同的全局资源(全局变量、硬件资源等),就有可能出现冲突,如下面的例子原创 2016-07-27 22:37:44 · 315 阅读 · 0 评论 -
Linux中的信号(2)
在上篇博客中,主要介绍了信号的基本概念,这次我主要介绍一下与信号相关的函数以及对它们的应用。sigaction函数#include int sigaction(int signo, const struct sigaction *act, struct sigaction *oact);sigaction函数可以读取和修改与指定信号相关联的处理动作。调用成功则返回0,出错则原创 2016-07-27 21:44:47 · 396 阅读 · 0 评论 -
进程间通信--管道的实现方式
一.管道的基本概念本质:不同的进程可以看到相同的系统资源进程退出,管道关闭释放。管道实现的原理: 创建子进程的时候子进程会继承父进程的文件描述符表特点: (1)只能实现单向通信 (2)适用于有血缘关系的进程(多用于父子进程) (3)面向字节流的服务 (4)依赖文件系统 (5)匿名管道原创 2016-07-26 11:19:04 · 1478 阅读 · 0 评论 -
Linux中的信号(1)
首先,我们来看一下Linux中都有那些信号:每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到。然后来看一下产生信号的条件: 1. ⽤户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信号,Ctrl-\产生SIGQUIT信号,Ctrl-Z产生SIGTSTP信号(可使前台进程停止,这个信号原创 2016-07-26 23:52:56 · 1844 阅读 · 0 评论 -
信号量操作函数中的SEM_UNDO
每一个独立的信号灯操作可能都需要维护一个调整动作。 Linux 至少为每一个进程的每一个信号灯数组都维护一个 sem_undo 的数据结构。如果请求的进程没有,就在需要的时候为它创建一个。这个新的 sem_undo 数据结构同时在进程的 task_struct 数据结构和信号灯队列的 semid_ds 数据结构的队列中排队。对信号灯队列中的信号灯执行操作的时候,和这转载 2016-07-26 20:51:21 · 776 阅读 · 0 评论 -
Linux中程序的栈帧分析以及修改函数地址
首先,我们来看一个小程序:在这个程序中,我们并没有调用fun()函数,为什么会重启呢?在main函数中,调用了fun1()函数,p--后,将栈帧上p的下一个位置指针(fun1函数调用完后的下一条指令的地址)改为fun函数的地址,运行完fun1函数后默认运行p的地址,跑去调用fun函数。那怎么样不通过变量名来修改栈帧上变量的内容看下面一个程序:猜一下结果输原创 2016-06-11 22:06:21 · 487 阅读 · 0 评论 -
task_struct结构体字段介绍--Linux中的PCB
Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,task_struct是Linux中的【进程控制块PCB结构】的具体数据结构这个结构体包含了一个进程所需的所有信息。它定义在linux-2.6.38.8/include/linux/sched.h文件中。下面对task_struct这个结构体 进行各个字段的详细介绍1. 调度数据成员转载 2016-06-11 17:10:13 · 2993 阅读 · 0 评论 -
Linux 中的Makefile 的一些简单使用
Makefile会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。 一般来说,无论是C、C++、还是 pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下 是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(l原创 2016-06-01 19:12:15 · 1976 阅读 · 0 评论 -
Linux 中的find指令
Linux中的find是一个很强大,很有用的一个指令。它的主要作用就是在文件树中查找对应的文件。find的命名格式//fing + 查找路径 +命令选项find pathname -options2.find的一些命令选项-name 按照文件名查找文件。-perm 按照文件权限来查找文件。 -user 按照文件属主来查找文件。 -group 按照文件所属的组来查找文件。 -nogr原创 2016-06-01 19:01:44 · 433 阅读 · 0 评论 -
linux 系统的 ctags 以及Makefile的应用
1.ctags(Linux代码查看)ctags -R :在当前目录下建立索引。 ctrl + ]: 跳转到函数或变量的定义处ctrl + T : 跳转至上级 2.Makefile的应用会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。原创 2016-06-01 18:46:36 · 390 阅读 · 0 评论 -
Makefile的一些简单心得
闲来没事,决定研究一下make如何去访问层级目录:假如,如果这层目录中有一个Makefile,下层目录中也有Makefile,需要对两个Makefile进行同时编译,怎么做呢?第一层目录如下:下层目录如下:怎样让这两个Makefile同时编译呢?外层Makefile内层Makefile执行结果:原创 2017-02-15 17:27:14 · 373 阅读 · 0 评论