Linux
文章平均质量分 83
CZF_csdn
记录自己的成长,战胜自己。
展开
-
Linux权限及vim基本操作
基本权限:普通用户创建文件默认666原创 2018-03-16 23:35:59 · 278 阅读 · 0 评论 -
进程间通信之管道
匿名管道和命名管道原创 2018-04-17 15:41:03 · 159 阅读 · 0 评论 -
进程间通信之SystemV IPC--共享内存和信号量
共享内存:最快的可用IPC形式,一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步。(不涉及内核:进程不是通过执行任何进入内核的系统调用来传递彼此的数据)。在消息队列处实现过一个服务器和客户机通信的例子:简单的客户端---服务器例程下图展示了从服务器到客户机的文件数据流向:当我们使用共享内存区对对...原创 2018-05-02 00:09:23 · 235 阅读 · 0 评论 -
实现哲学家问题和生产者消费者模型
利用信号量实现互斥访问资源:#include <stdio.h>#include <stdlib.h>#include <sys/ipc.h>#include <sys/sem.h>//本例描述互斥的打印字符AAZZ必须成对出现union semun{ int val;};int id;void print(char...原创 2018-05-02 00:26:13 · 204 阅读 · 0 评论 -
进程间通信之SystemV IPC--消息队列
System V IPC : 基于内核持续性System V 消息队列:在程序之间传递数据的一种方法System V 共享内存:用于在程序之间高效的共享数据System V 信号量:用于管理对资源的访问内核会为每个IPC对象维护一个数据结构:struct ipc_perm{ key_t key; /* 调用shmget()时给出的关键字...原创 2018-05-01 16:59:10 · 258 阅读 · 0 评论 -
线程的基本概念
线程:1>在一个程序里的一个执行路线叫做线程,线程是一个进程内部的控制序列2>一个进程至少都有一个执行线程线程和进程创建过程简单图示:线程和进程:进程是资源竞争的基本单位线程是程序执行的最小单位一个进程内的全部进程共享同一个全局内存空间,这使得进程间很容易共享信息,但是这种容易性也带来可同步问题。一个进程内的线程不光共享全局变量,以下信息也是它们所共享的:1.进程指令2.同一地址空间,...原创 2018-05-05 22:49:50 · 296 阅读 · 0 评论 -
线程的几种锁及基本操作
互斥锁:1.定义互斥量: pthread_mutex_t mutex;2.初始化互斥量: pthread_mutex_init(&mutex, NULL); //第二个参数不研究置NULL; //初始化为 1 (仅做记忆)3.上锁 pthread_mutex_lock(&mutex); 1->0; 0 等待4.解锁原创 2018-05-05 22:50:21 · 37718 阅读 · 2 评论 -
Linux下的简单线程池
问题描述:在我们的日常生活中,如果我们现在要浏览一个网页或者频繁的打开一个执行时间较短的任务,如果每次调用都创建一个线程,使用结束后就立即释放,那么这样的开销对于操作系统来说有点太过浪费了。而线程池的出现就可以很好地解决这样的问题。线程池:1.特点:1>经典生产者消费者模型。2>线程池中有若干等待的线程。3>线程池中的线程用于执行大量的相对...原创 2018-05-12 12:32:42 · 1765 阅读 · 3 评论 -
Linux中的popen函数和system函数
啊原创 2018-05-18 16:29:23 · 2089 阅读 · 0 评论 -
在虚拟机中和本地上传和下载文件
说明:我的虚拟机系统是Centeros7, 本地系统是Win7,工具是Xshell。希望能帮到大家。虚拟机下载文件到本地:1.找到要下载的文件或文件夹,pwd查看当前的绝对路径2.将文件夹打包 (单个文件可以忽略这一步) tar -zcvf /home/czf/Test/test.tar.gz czf ddd eee 格式为 : tar -zcvf /全路径名/生成的打包文件名 要打包...原创 2018-05-07 15:35:39 · 11844 阅读 · 0 评论 -
mmap函数
写在前面:内存共享的几种方式:管道:简单、数据量较小共享内存:最快mmap:最高效socket:最稳定这篇文章重点分析一下mmap:void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr,...原创 2018-05-20 20:40:48 · 501 阅读 · 0 评论 -
Linux信号
信号的概念:信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或者系统异常。信号的产生:1>对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。如输入Ctrl+c向进程发送一个中断信号。2>系统异常。如浮点数异常和非法的内存段的访问3>系统状态变化。如alarm定时器到期将一起SIGALRM信号。4>运行kill命令或者调用kill函数。服...原创 2018-05-15 20:33:27 · 698 阅读 · 0 评论 -
静态库和动态(共享)库
ELF可重定位目标文件的格式:ELF可执行文件的格式:静态库:(.a)静态库:(.a)原创 2018-04-18 15:06:31 · 215 阅读 · 0 评论 -
Linux进程退出、等待和替换
程序退出的场景:1.代码运行完毕,结果正确2.代码运行完毕,结果不正确3.代码异常终止常见的进程退出方法正常终止:(可通过echo $? 查看进程的退出码):1.main函数的return执行return n; 等同于执行exit(n);因为调用main的运行时函数会将main的返回值当做exit的参数2.调用exit1>调用退出处理程序(用户通过ate原创 2018-04-05 12:21:14 · 957 阅读 · 0 评论 -
Linux【笔记】
知识储备:Linux目录:Linux文件原创 2018-03-12 00:03:40 · 174 阅读 · 0 评论 -
Linux下软件的安装
须知:Linux下的软件安装都是在跟用户权限下的操作。gcc:yum install gcc 在安装完成后用which gcc查看是否安装成功;g++:yum install gcc-c++ 在安装完成后用which g++查看是否安装成功;gdb:yum install gdb在安装完成后用which gdb查看是否安装成功;此法无法安装时可参考:打开原创 2018-03-23 15:46:28 · 126 阅读 · 0 评论 -
操作系统及进程基本概念
操作系统:进程和程序:原创 2018-03-24 10:48:44 · 290 阅读 · 0 评论 -
Mikefile详解
Mikefile的作用:makefile带来的好处就是——“自动化原创 2018-03-26 13:14:50 · 1277 阅读 · 0 评论 -
Linux下实现简单进度条(彩色版)
既然之前学习了Makefile就现学现卖,此处只是编译一个文件,多文件编译原理相同!Makefile:processbar1:processbar1.o gcc $^ -o $@%o: %.c gcc -c $^ -o $@all=processbar1.i\ processbar1.s\ processbar1.o\ processbar1.PHONY: clean原创 2018-03-27 21:08:13 · 324 阅读 · 0 评论 -
进程状态及进程的基本操作
进程标识符:操作系统为每个进程分配一个独一无二的数字编号,这个编号称为进程标识符正整数[ 2 - cat/proc/sys/kernel/pid_max ) 操作系统选择下一个没有被使用的编号作为进程编号 0--内核进程 1--由0号进程产生,第一个用户态进程#include #include #include int main(){ pid_t p原创 2018-03-26 11:30:11 · 271 阅读 · 0 评论 -
fork()和vfork()详解
fork():1.功能:创建子进程2.返回:失败返回-1, 成功,父进程返回子进程id,子进程返回0;返回失败的原因:1.进程数达到系统规定上限,errno被置为EAGAIN,2. 系统内存不足,errno被置为ENOMEM3.调用fork之后通常要用if进行分流fork()一般用法:1.父进程希望复制自己,是父子进程能同时执行不同的代码段。例如,父进程等待客户端请求,生成子进程来处理请求。2.一...原创 2018-04-02 17:12:33 · 739 阅读 · 0 评论 -
Linux系统I/O
文件描述符:open/closeread/write原创 2018-04-11 20:53:39 · 643 阅读 · 0 评论 -
Linux下的文本编辑器和Windows的编辑器
Linux下有:vi/vim:功能强大,插件多。gedit:(我的电脑上没有,无法演示)nano命令:nano是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。nano亲自体验心得:感觉这个编译器还不错,界面丑了点,编译方式有点不太灵活。 学习参考: http://man.linuxde.n原创 2018-03-29 10:19:04 · 5768 阅读 · 0 评论 -
进程间通信基本概念【操作系统】
基本概念:进程同步:(司机-售票员、生产者-消费者)两个或多个进程需要相互配合才能完成一项任务进程互斥:由于各个进程都要访问共享资源,而且这些资源需要排他使用,因此各个进程间需要竞争使用这些资源,这种关系就叫进程互斥进程间通信的目的:1.数据传递2.资源共享3.通知事件进程间通信的发展历史:1.管道2.SystemV3.POSIX(可移植操作系统接口)S原创 2018-04-17 00:07:37 · 567 阅读 · 0 评论 -
Linux的gcc和gdb
在Linux下我们编号程序都会输入 gcc test.c -o test的gcc的编译命令,那么gcc还有其他的什么操作?知识储备:预处理:预处理阶段编译器主要进行宏替换,其功能还包括宏定义,文件包含,条件编译,去注释等。原创 2018-03-19 17:14:36 · 268 阅读 · 0 评论 -
Linux的查找命令
Linux常用的查找命令有:find、which、 whereis、 locate、 type.1.find : 查找任何文件格式:find [PATH] [option] [action]参数说明: 时间查找参数: -atime n: 将n*24小时内access过的文件列出来 -ctime n: 将n*24小时内状态发生改变的文件列出来 ...原创 2018-05-31 16:36:31 · 366 阅读 · 0 评论