Linux 操作系统
文章平均质量分 74
gogogo_sky
不积跬步,无以致千里;不积小流,无以成江海
展开
-
目录文件的普通权限
(一)当用户要进入一个目录时,需要目录有什么权限?先建立一个目录 code,然后查看到code的目录权限,可以看到该目录中用户权限为wrx(读,写,执行),接下来,我先把该目录中用户权限的r权限去掉,然后再进入目录,可以进入;接着把该目录中用户权限的w(写)权限去掉,也可以进入,然后给该目录中用户权限的加上rw(读,写)权限,把x(执行)权限去掉,发现进不去目录;结论:进入一个目录需要该目原创 2017-03-21 17:36:37 · 1262 阅读 · 0 评论 -
【信号】---关于SIGCHLD信号
一、 下面证明验证子进程退出时会给父进程发送SIGCHLD信号(17号信号)的机制测试结果: 三、父进程等待子进程的异步版本(非阻塞版本)测试:原创 2017-06-11 16:16:27 · 597 阅读 · 0 评论 -
IPC实现机制(四)---信号量(sem)
前言:学习信号量之前先弄清两个概念:什么是临界资源,什么是临界区 (1)临界资源:一次仅允许一个进程使用的共享资源。 (2)临界区:每个进程中访问临界资源的那段程序称为临界区一、什么是信号量信号量的本质是一种数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信的;它本身是一种外部资源的标识;信号量在这个过程中负责数据操作的互斥和同步功能;二、为原创 2017-06-10 02:45:28 · 574 阅读 · 0 评论 -
IPC实现机制(三)---消息队列
一、什么是消息队列 消息队列就是消息的链表,位于内核中。 消息队列中每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。 消息队列是基于消息的,管道是基于字节流的, 且消息队列的读取不一定是先入先出。 消息队列却是随内核的,即使该进程消亡了该内核中的消息队列是不会主动消失的,除非使用ipcrm -q + msg_id删除该消息队列。二、消息队列的特征: 消息队列提供原创 2017-06-03 14:40:59 · 755 阅读 · 0 评论 -
IPC实现机制(二)---命名管道(FIFO)
一、FIFO的概念: 匿名管道(pipe)的⼀个不⾜之处是没有名字,因此,只能⽤于具有亲缘关系的进程间通信; 因此,提出了命名管道;命名管道(FIFO) 提供⼀个路径名与之关联,以FIFO的⽂件形式存储于⽂件系统中。 命名管道是⼀个设备⽂件,因此,即使进程与创建FIFO的进程不存在亲缘关系,只要可以访问该路径,就能够通过FIFO相互通信。 值得注意的是, FIFO(first input f原创 2017-06-09 19:28:37 · 1009 阅读 · 0 评论 -
IPC实现机制(一)---pipe(匿名管道)
一.IPC简介: (1)概念: 每个进程各⾃有不同的⽤户地址空间,任何⼀个进程的全局变量在另⼀个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟⼀块缓冲区,进程1把数据从⽤户空间拷到内核缓 冲区,进程2再从内核缓冲区把数据读⾛,内核提供的这种机制称为进程间通信 (IPC,InterProcess Communication) (2)常用的进程间通信方式:传统的进程间原创 2017-05-31 00:49:23 · 2172 阅读 · 1 评论 -
谨慎使用输出重定向(>)
今天在使用重定向<的时候,不小心把一个空的文件重定向到刚写完的程序中,导致白写了;想在网上找挽回的措施,结果linux没有办法可以挽回;就看到这篇文章,分享出来!避免“悲剧重演” 转资51CTO:http://cuchadanfan.blog.51cto.com/9940284/1670308 一、问题描述 我们在进行文件操作时经常会用到覆盖输出重定向(>),追加输出重定向(>>),很转载 2017-06-03 20:49:04 · 501 阅读 · 0 评论 -
Linux下IPC机制实现相关函数
一、因为linux下一切皆文件,所以先看linux下对文件I/O相关函数: 二、IPC管道机制相关函数: 三、IPC命名管道机制相关函数: 四、IPC消息队列机制相关函数:原创 2017-05-28 19:49:09 · 371 阅读 · 0 评论 -
标准IO与文件IO 的区别
作者:王姗姗,华清远见嵌入式学院讲师。1.先来了解下什么是标准IO以及文件IO。标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。(1)全缓存:当填满标准IO缓存后才进行实际的IO操作。 (2)行缓存:当输入或输出中遇到新行符时转载 2017-05-24 16:35:40 · 544 阅读 · 0 评论 -
时间指令stat内容详解
1.stat:用于显示文件的状态信息。 stat命令的输出信息比ls命令的输出信息要更详细2.其中stat的内容项具体含义:Access:文件最近一次的访问时间Modify:文件内容最近一次的修改时间Change:文件属性最近一次的修改时间原创 2017-04-01 11:27:41 · 547 阅读 · 0 评论 -
linux下的粘贴位
1. 通常情况下,我们只要对一个目录有w写的权限就可以删除这个目录下的任何文件或子目录;这样就会造成同一个目录下,如果有多个用户建立的属于自己的文件;任何只要对该目录有w写权限的用户,都可以删除别人在这个目录下建立的属于自己的文件;这样做事很可怕的; 在Linux系统中比较典型的例子就是“/tmp”、“/var/tmp”目录。这两个目录作为Linux系原创 2017-04-01 23:34:49 · 1386 阅读 · 0 评论 -
llinux中find命令
1.find命令用来在目录结构中搜索文件,并执行指定的操作。在指定目录下查找文件时,任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。2.格式find pathname -options [-print -exec -ok ...]原创 2017-04-01 22:09:26 · 392 阅读 · 0 评论 -
Linux下实现进度条
1.进度条在生活中很常见,在linux系统中实现一个进度条的程序,感觉还是很有趣的2.首先,进度条的动态是利用人们的视觉效果产生的,其实并不是像我们看到的那样,每次给后增加一个进度条,而是一个覆盖输出的过程;先输出:[= ]表示进度是1%,刷新之后再输出:[==原创 2017-04-11 11:06:34 · 459 阅读 · 0 评论 -
操作系统内存管理之 ---堆和栈的区别
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分 (从上到下,从内存高地址到内存低地址) 1、栈区(stack) — 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2017-11-14 01:52:40 · 3169 阅读 · 0 评论