
Linux
文章平均质量分 79
jelly_9
快速采集信息,高效整理,根据逻辑建立成一个系统。
展开
-
进程创建fork()和vfork()
一个现有的进程可以通过两种方式创建一个新的进程,下面详细介绍两种 fork() 、 vfork()。 fork() 函数原型( man 手册): #include <unistd.h> pid_t fork(void); 描述: fork() 以当前的进程为副本创建一个新的进程,新创建的进程被称为子进程, 当前的进程被称为父进程,父进程和子进程运行在各自的地...原创 2018-03-10 16:04:17 · 291 阅读 · 0 评论 -
进程替换和exec函数族
fork 创建的子进程一般不会执行和父进程相同的代码段,而是调用 exec 相关函数,将该进程的用户空间代码和数据完全替换,子进程从替换的新程序启动执行。exec仅仅是替换代码和数据,并不会创建新进程,所以被替换的进程 id 和子进程 id 相等。 如下图: 新进程从调用进程继承了下列属性: 进程 ID 和父 ID,实际用户 ID 和实际组 ID 附属组 ID,进程组 ID,回...原创 2018-03-11 12:02:56 · 290 阅读 · 0 评论 -
多线程的同步与互斥
当多个控制线程共享相同的内存时,要确保对数据访问的正确性,就需要做线程的同步与互斥工作。先看下面这个例子: 为什么要进行线程的同步与互斥 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> #include <sign...原创 2018-03-17 17:53:28 · 1084 阅读 · 1 评论 -
【Linux命令】:ps
简介 ps 命令是最基本也是非常强大的进程查看命令,使用ps 命令可以查看系统当前进程的详细信息,这些信息包括但不限于进程的所述用户名、进程id、父进程id、cpu占用率、内存占用率、进程状态等等。 用法 使用权限:所有用户 使用方式:ps [options] 使用效果:瞬间显示进程相关信息 参数:该命令有许多参数,下面将部分参数列举并演示部分常用操作。 -a:显示现...原创 2017-12-10 14:46:54 · 253 阅读 · 0 评论 -
Linux的find命令
Windows系统中,有个查找的操作,微软为了满足Windows用户的零基础入门,人性化的图形用户界面使得好多的操作都可以通过鼠标的点击来完成,所以包括查找在内的好做操作都显得不是那么重要,我们平常也很少用到它们。 如下: 在计算机文件系统中有个查找输入框,我们可以依据文件名、修改时间等等去查找。 在Linux中,查找这个操作比较重要,查找这个操作通过find命令来完成 用法 ...原创 2017-04-09 16:31:25 · 415 阅读 · 0 评论 -
Linux时间参数atime、ctime、mtime
在linux下每个文件(目录)都会记录很多时间参数,主要有三个关于文件变动的时间——mtime、atime、ctime,它们储存与inode“数据结构”中,使用stat filename命令可以查看它们。 1.ctime change time:当文件(目录)的“状态”被改变时,这个时间会被更新,如文件的权限、拥有者、所属组属性、大小等。 如下: 2. mtime modif...原创 2017-04-04 00:49:56 · 1139 阅读 · 0 评论 -
Linux下目录和文件的权限
在Linux系统内文件有三种身份(owner、group、others),而且每种身份有三种权限(r(read)、w(write)、x(execute)),我们可以使用chmod、chown、chgrp去修改这 些权限,也可以用ls -l查看他们的权限与属性,那么这些权限对于一般文件和目录文件有什么不同呢。 文件的权限 一般文件可以记录数据。计算机中文件有一般文本文件(txt、word...原创 2017-03-22 22:39:48 · 612 阅读 · 0 评论 -
进程信号
信号时一种从软件层面上对中断的模拟,很多重要的程序都需要处理信号,信号提供了一种处理异步事件的方法。比如,用户在终端按下 ctrl C 会终止一个进程,或者通过 kill 命令来给特定的进程发送信号。 信号基本概念 每个信号都有一个名字,这些名字以SIG 开头,在头文件 <signal.h> 中,这些信号名被定义为正整数常量(信号编号)。我们可以通过 kill -l 查...原创 2018-03-14 13:47:20 · 278 阅读 · 0 评论 -
Linux网络编程知识树
作者:【果冻:https://blog.youkuaiyun.com/jelly_9】原创 2018-04-03 20:38:12 · 600 阅读 · 1 评论 -
进程控制块(PCB) —— task_struct
我们把正在执行的程序称为进程,这是一种广义的定义。更具体一点来说,进程是由正文端 (text) 、用户数据段 (usr segment) 以及系统数据段 (system segment)共同组成的一个程序执行环境。 进程和程序 程序 程序是一个包含及其代码指令和数据的可执行文件,这个文件一般储存在磁盘上(储存设备)上,所以,程序是一个静态的实体。比如,我们用 C 语言写了一个C...原创 2017-12-09 01:11:41 · 1758 阅读 · 0 评论 -
进程等待 wait和waitpid
父进程通过 wait 或 waitpid 函数来获取子进程的退出状态,并且彻底杀死这个进程,清理这个进程的所有资源。如果不这么做,子进程会变成一个僵尸进程,长时间占用系统内存,造成类似内存泄漏的问题。 wait() #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status); ...原创 2018-03-11 10:21:08 · 381 阅读 · 0 评论 -
线程基础
线程(thread)是一个程序里的执行路线,每个进程都至少有一个线程。 线程基础概念 什么是线程 线程(thread)是一个程序里的执行路线,每个进程都至少有一个线程。在单线程下,一个进程同一时刻只能干一件事情,而在多线程进程中,同一时刻可以有多个执行流程。如下图: 线程的特点 多线程共享的部分: 线程是操作系统调度的最小单位,也是进程中实际运作的单位; 它是单一顺序...原创 2018-03-15 14:59:32 · 232 阅读 · 0 评论 -
僵尸进程
引言: 在Linux/Unix系统编程时,会经常遇到僵尸进程(Zombie)这个概念。类似电影中的僵尸一样,僵尸进程指的是那些已经运行结束、却仍然占着一些内存资源,没有被彻底清理的进程。 一个进程结束之后,内核会释放该进程的资源,包括打开的文件、占用的内存的高等,此后它将成为一个僵尸进程,在它的父进程没有wait/waipid它之前,它将一直保持这个状态。它仍然保留一定的信息(包括PID原创 2017-05-04 13:21:38 · 542 阅读 · 1 评论 -
管道
操作系统中每个进程都有各自不同的地址空间,其中的数据不能与其它进程直接交互。不同的进程间想要通信,我们需要借助其它机制。 在进程之间通信的最简单的方法是通过一个文件,其中有一个进程写文件,而另一个进 程从文件中读,这种方法比较简单,其优点体现在: • 只要进程对该文件具有访问权限,那么,两个进程间就可以进行通信; • 进程之间传递的数据量可以非常大。 尽管如此,使用文件原创 2017-06-06 19:57:13 · 1072 阅读 · 0 评论 -
信号量
信号量及信号量上的操作是E.W.Dijkstra 在1965 年提出的一种解决进程间同步、互斥问题的较通用的方法,并在很多操作系统中得以实现,Linux 改进并实现了这种机制。它的提出是为了防止出现因多个程序同时访问临界资源如显示器、打印机)而引发的一系列问题。 什么是信号量先举一个例子: 假如有一个停车场,该停车场只有一个车位,一开始该停车场是空的。某个时刻来了一辆车,然后看门人发现停车场空位原创 2017-06-09 17:30:51 · 529 阅读 · 0 评论 -
消息队列
我们知道进程间通信(IPC)可以使用管道来完成,但使用管道有一个缺陷——只能单向通信,即想要双向通信就需要两个管道。下面介绍另一种进程间通信的方法——消息队列,它可以实现双向通信。 什么是消息队列“消息队列”是在消息的传输过程中保存消息的容器。它提供了一种从一个进程向另一个进程发送一个数据块的方法,每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。 消息队列就是一个消息的链原创 2017-06-14 13:42:59 · 325 阅读 · 0 评论 -
进程基础
【作者:果冻 http://blog.youkuaiyun.com/jelly_9】原创 2018-02-28 08:42:05 · 201 阅读 · 0 评论 -
进程控制
【作者:果冻 http://blog.youkuaiyun.com/jelly_9】原创 2018-02-28 08:43:23 · 155 阅读 · 0 评论 -
进程间通信
【作者:果冻 http://blog.youkuaiyun.com/jelly_9】原创 2018-02-28 08:44:40 · 161 阅读 · 0 评论 -
信号
【作者:果冻 http://blog.youkuaiyun.com/jelly_9】原创 2018-02-28 08:45:45 · 155 阅读 · 0 评论 -
线程
【作者:果冻 http://blog.youkuaiyun.com/jelly_9】原创 2018-02-28 08:46:32 · 164 阅读 · 0 评论 -
cp指令
简介 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 语法 cp [选项] [参数] 选项 -a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建...原创 2018-07-01 23:37:45 · 14398 阅读 · 0 评论