
linux
文章平均质量分 87
IT_xiaoye
这个作者很懒,什么都没留下…
展开
-
Linux---浅谈Linux开发工具
常用的编辑器与编译器横向对比一些常用的编辑器,例如:Vim ,VS Code , Sublime Text2 ,Atom配置方面: Vim 的可配置性非常强,各种插件、语法高亮配色方案等多不胜数,但是都需要自己亲手配置.vimrc文件,自由度很高,用户可以自由配置以及想要的功能Sublime Text2 有着语法高亮、代码提示补全、代码折叠、自定义皮肤/配色方案、多便签页等...原创 2018-03-21 11:57:23 · 254 阅读 · 0 评论 -
网络编程---UDP协议解析以及UDP套接字编程实现
认识UDP协议 UDP协议全称是用户数据报协议[1],在网络中它与TCP协议一样用于处理数据包,但不同于TCP的是,UDP是一种无连接的协议。。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。 简单来说,U...原创 2018-05-26 13:15:21 · 2269 阅读 · 0 评论 -
Linux---进程终止和进程等待
进程终止进程终止场景代码运行正常,结果正确代码运行完毕,运行不正确代码异常终止Linux下,我们可以通过echo $?命令查看进程退出状态,命令的实际作用是查看离它最近的一条命令的退出码#include <stdio.h> ...原创 2018-05-22 16:42:59 · 355 阅读 · 0 评论 -
atexit函数和on_exit函数
atexit函数(设置程序正常结束前调用的函数)相关函数 _exit,exit,on_exit函数原型 #include<stdlib.h> int atexit (void(*function)(void)); 返回值 如果执行成功则返回0,否则返回-1,失败原因存于errno中。函数说明 atexit()用来设置一个程序正常结束前调用的函数。当程序通过调用e...转载 2018-05-22 16:51:52 · 2057 阅读 · 0 评论 -
网络编程---多线程/多进程版TCP套接字编程
TCP\IP协议我之后会放在一起进行解释,因为这块较UDP来说比较复杂,我需要分成两三篇博客来分几个部分详谈,如TCP中的三次握手,四次回收,超时重传等,IP协议的底层通信,路由,MAC帧等,都会讲到,我尽量总结点详细一点,以免遗漏。这里我就只放上TCP套接字编程的代码,接口和一些注意的点在之前的TCP/UDP套接字原理中都有讲到,看不懂的请戳这里-&gt;链接大家研究代码的时候也可以与UDP...原创 2018-05-28 15:36:05 · 1062 阅读 · 1 评论 -
网络编程---TCP/UDP套接字编程原理
本篇介绍的是Linux下的网络编程,故有些接口是不适用于Windows的,但是具体概念和实现方法是大体一致的介绍网络编程套接字(socket)也是进程间通信的一种方式,但是不同于管道,消息队列,共享内存的是socket不仅可以实现本机内不同进程间的通信,也可以实现网络中两台不同主机间的进程通信。socket相当于是一个文件描述符,我们将数据写入socket中,再发到目标主机,目标主机接...原创 2018-05-24 20:17:13 · 2129 阅读 · 1 评论 -
网络编程---select、poll、epoll服务器编写
select服务器#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h> ...原创 2018-06-16 16:08:24 · 561 阅读 · 0 评论 -
Linux--vim下打开多文件、多窗口
打开多个文件: 一、vim还没有启动的时候: 1.在终端里输入 vim file1 file2 … filen便可以打开所有想要打开的文件2.vim已经启动 输入 :e file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。3.同时显示多个文件: :sp //水平切分窗口 :vsplit //垂直切分窗口...转载 2018-06-24 01:07:19 · 794 阅读 · 0 评论 -
网络编程--IO多路复用之select,poll和epoll详解
什么是socket?什么是I/O操作?我们都知道unix(Linux)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流。在信息 交换的过程中,我们都是对这些流进行数据的收发操作,简称为I/O操作(input and output),往流中读出数据,系统调用read,写入数据,系统调用write。不过话...原创 2018-06-16 17:04:42 · 2381 阅读 · 0 评论 -
操作系统---fork函数解析与例题详解
fork的基本知识函数原型:pid_t fork( void); 返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值,而父进程中返回子进程ID。...转载 2018-05-20 21:58:43 · 3673 阅读 · 0 评论 -
Linux---进程创建
我们在执行一个可执行文件时,操作系统便为我们创建了一个进程,而我们今天要讲的是从已创建的进程中再创建一个进程,称为当前进程的子进程。子进程有着和父进程一样的代码,数据也同样写时拷贝了一份。 要想创建一个子进程,我们就要学习 fork()/vfork()两个函数。认识fork函数函数原型#include <unistd.h>pid_t fork(void);返回值:子进...原创 2018-05-20 20:52:14 · 730 阅读 · 0 评论 -
Linux---基本指令篇
Linux基本指令篇基本指令实现Linux下重要目录内容了解一些重要命令ls命令作用:查看目录下面的内容实现:ls+(选项)+目录名或文件名选项: -a 列出目录下的所有文件,包括以.开头的隐藏文件-l 列出文件的详细信息(也可以直接写成-ll)-1 一行只显示一个文件 cd命令作用:改变当前目录(进入XX目录)实现:cd+路径...原创 2018-03-13 18:08:26 · 270 阅读 · 0 评论 -
Linux---初识进程
操作系统(Operator System)要想了解进程,首先就要对操作系统有一个大致的了解,常见的操作系统有Windows,Linux,Unix,安卓,甚至是数字电视也有自己的一套操作系统。概念:任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。操作系统大致包括:内核(进程管理,内存管理,文件管理,驱动管理)其他程序(例如函数库,shell程序等等)...原创 2018-03-25 22:29:13 · 238 阅读 · 0 评论 -
Linux---僵尸进程和孤儿进程
僵尸进程Z僵死状态(Zombies)是一个比较特殊的状态。当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵死(尸)进程僵尸进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成...原创 2018-03-26 12:38:53 · 235 阅读 · 0 评论 -
Linux---Linux系统下的进程间通信详解
进程间通信(IPC)介绍进程间通信的本质就是让两个毫不相关的进程看到一份共同的资源,大概意思就是实现不同进程间的传播或交换信息进程间通信的主要方式有管道,消息队列,共享内存,信号量,Socket,Streams等,这篇博客主要详细讲解前四种通信方式。(因为后面两个还没学,嘿嘿)一、管道管道是UNIX中最古老的进程间通信方式 我们把从一个进程连接到另一个进程的一个数据流称为...原创 2018-04-25 10:37:05 · 436 阅读 · 0 评论 -
Linux---死锁
什么是死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁产生的四个条件互斥条件:指进程对所分配的资源进行排他性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其他进程请求资源,则请求者只能等待,直至占有资源的...原创 2018-04-25 12:35:46 · 334 阅读 · 0 评论 -
Linux---进程组/作业/会话
1、进程组每个进程除了自己本身的ID之外,还属于一个进程组。进程组(Process Group)是一个或多个进程的集合。进程组ID等于组长进程的进程ID,组长进程可以创建一个进程组每个进程组都有一个组长进程,如果组长进程终止,只要该进程组内还存在至少一个进程,则该进程组就存在,与其组长进程是否终止无关进程组通常与作业相关联,同组内的进程可以接收来一同一终端的同一信号 ...原创 2018-04-25 18:10:55 · 358 阅读 · 0 评论 -
Linux---守护进程
什么是守护进程守护进程也称为精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。例如Linux的大多数服务器就是用守护进程实现的。比如,ftp服务器,ssh服务器,Web服务器等。同时,守护进程完成许多系统任务。比如,作业规划进程crond等。Linux系统启动时会启动很多系统服务进程,Windows系统也是如此,这些...原创 2018-04-26 12:07:21 · 355 阅读 · 0 评论 -
Linux---详谈线程的同步与互斥,互斥量以及条件变量
大部分情况下,线程使用的都是局部变量,保存在自己的私有栈结构里,但是有的时候又会多线程访问共享资源,如全局变量,这时候如果操作过于频繁,或者线程数量较多,就会产生一些问题,因为毕竟不是所有的操作都是原子性的(要么不做,要么就做完,不存在中间时刻)下面模拟买票场景,大家看完就会明白问题所在,代码很简单 int ticket = 20;//假设一共有20张票(全局变量) ...原创 2018-04-16 17:37:05 · 312 阅读 · 0 评论 -
网络编程---服务器编程中CGI模式的运行机制
CGI概括: 定义 通用网关接口(Common Gateway Interface)是HTTP服务器与你的或其它机器上的程序 进行“交谈”的一种工具,其程序须运行在网络服务器上。 功能 绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使 网页具有交互功能。 运行环境 CGI程序在...转载 2018-06-16 17:46:41 · 600 阅读 · 0 评论