
Linux
Jammm
除了聪明 没有什么好说的 除了学习 没有什么好干的
展开
-
Linux中的常用操作命令
常用指令ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all)mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent)cd 切换目录touch原创 2017-12-05 18:55:20 · 168 阅读 · 0 评论 -
大小端判断和网络字节序
大小端由来在计算机内存中,通常是以字节(Byte),也就是 8 个位(Bit)为基本存储单元(也有以 16 位为基本存储单元的)。 对于像C++中的char这样的数据类型,占用一个字节的大小,不会产生什么问题。 但是当数据类型为int,在32bit的系统中,它需要占用4个字节(32bit),这个时候就会产生这4个字节在寄存器中的存放顺序的问题。比如int maxHeight = 0x1...原创 2018-08-03 13:56:22 · 909 阅读 · 2 评论 -
Linux--深入了解IO
五种IO模型阻塞IO:在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认是阻塞方式。 非阻塞IO:如果内核还未将数据准备好,系统调用仍然会直接返回,并且返回EWOULDBLOCK错误码。(阻塞IO往往需要用循环的方式反复尝试读写文件描述符,这个过程称为轮询,这样会大量浪费CPU,只有在特定的场景下才会使用) 信号驱动IO:内核将数据准备好的时候,使用SIGIO信号通知应用程序...原创 2018-06-08 22:38:32 · 355 阅读 · 0 评论 -
Linux--匿名管道pipe与命名管道FIFO
管道什么是管道管道是Unix中最古老的进程间通信形式。行一个进程连接到另一个进程的一个数据流称为“管道”。匿名管道#include <unistd.h>int pipe(int fd[2]);功能: 创建匿名管道 参数:fd:⽂文件描述符数组,其中fd[0]表⽰示读端, fd[1]表⽰示写端 返回值: 成功返回0,失败返回错误代码 ...原创 2018-05-30 23:34:20 · 1493 阅读 · 0 评论 -
Linux--进程间通信(管道,消息队列,共享内存)
进程间通信进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发⽣生了某种事情(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦 截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。...原创 2018-05-30 12:02:20 · 853 阅读 · 0 评论 -
Linux----基础I/O
回顾C文件接口写文件#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<string.h>int main (){ umask(0);...原创 2018-05-29 13:49:36 · 314 阅读 · 0 评论 -
Linux--简单了解进程
进程基本概念课本概念:程序的一个执行实例,正在执行的程序等。 内核概念:担当分配系统资源(CPU时间,内存)的实体。 描述进程—PCB(进程属性的集合)task_struct在Linux中描述进程的结构体叫做task_struct。task_struct是Linux内核的...原创 2018-05-23 10:53:18 · 266 阅读 · 0 评论 -
Linux---进程控制(创建、终止、等待)
创建进程fork函数在Linux中,从已存在进程中创建一个新的进程。新进程为子进程,而源进程为父进程。进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表中fork返回,开始调度器调度当一个进程调用fork之后,就有两个二进制代码相同的进程。而且它们都运行...原创 2018-05-27 18:33:08 · 1237 阅读 · 0 评论 -
linux---线程的深入了解
线程什么是线程在一个程序里的一个执行路线就叫做线程。线程是一个进程内部的控制序列。 一个进程至少有一个线程。进程与线程(进程与线程总结)进程的多线程共享地址空间文件描述符信号的处理方式当前工作目录用户ID和组ID线程优点:创建一个新线程的代价要比创建一个新进程小得多。与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多。线程占...原创 2018-06-03 13:07:40 · 267 阅读 · 0 评论 -
Linux---进程信号的产生和处理
什么是信号用户输入命令,在Shell下启动一个前台进程。用户按下Ctrl-C,这个键盘输入产生一个硬件中断。如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执⾏行,CPU从用户态 切换到内 核态处理硬件中断。终端驱动程序将Ctrl-C解释成一个SIGINT信号,记在该进程的PCB中(也可以说发送了一 个SIGINT 信号给该进程)。当某个时刻要从内核返回到该进...原创 2018-06-03 11:27:20 · 854 阅读 · 0 评论 -
Linux--实现彩色进度条小程序
实现一个彩色的进度条需实现以下几点:(1) 由#组成的进度条在一行上由少到多一个个增长,直到增加到已设定的值(2) 随着进度条的增长,在该行的结尾显示变化着的进度百分比(3) 在进度条增长的过程中,有一光圈不停转动,直到进度条完成(4) 将进度条变为彩色的1.实现进度条的显示我们做的进度条是一个方括号不动 方括号里逐渐填充#的一个进度条那么 我们就需要固定一个...原创 2018-05-16 11:15:12 · 452 阅读 · 0 评论 -
Linux--网络编程套接字
套接字在前面我们讲了TCP/IP、TCP和UDP的一些基本知识,但是协议只有一套,而我们系统多个TCP连接或多个应用程序进程必须通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。套接字Socket看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字...原创 2018-05-22 15:10:04 · 265 阅读 · 0 评论 -
Linux vim的简单配置(高亮+自动缩进+行号+折叠+优化)+初始代码
在Linux中配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。 首先输入su命令,获得root权限(输入密码时屏幕是不显示的,但已经输入),pwd查看当前路径,如果不在etc的话,cd /etc进入etc目录,ls -a...原创 2018-05-15 11:37:16 · 13160 阅读 · 0 评论 -
Linux--线程与进程的总结
什么是进程?进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 什么是线程?线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 进程与线程进程是资源竞争的基本单位 线程是程序执行的最小单位 线...原创 2018-05-14 19:52:31 · 274 阅读 · 0 评论 -
Linux下常用基本命令(二)
07.man指令Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man。语法:man[选项]命令常用选项:-k 根据关键字搜索联机帮助num 只在第num章节找-a 将所有章节的都显示出来,比如man printf它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。解释一下,man手册分...原创 2018-05-11 23:52:24 · 248 阅读 · 0 评论 -
Linux下的常用基本指令(一)
01.ls指令语法:ls[选项][目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a列出目录下的所有文件,包括以 . 开头的隐含文件-d将目录像文件一样显示,而不是显示其下的文件。如:ls -d指定目录-i输出文件的i节点的索引信息。如ls -ai指定文件-k以k字节的形式表示文件的大小。ls -alk指定文件-l列出文件的详细信息...原创 2018-05-10 00:24:43 · 304 阅读 · 0 评论 -
手把手教你配置一个强大的Vim
从Windows编程到Linux编程,没有了整齐的自动排版,没有了语法高亮,一切都变得不适应。什么都没有的linux是怎么赢的大佬们的喜爱的呢?接下来我们就通过配置我们的vim,让我们的Linux编程变得更强大,更轻松。首先需要手动设置一个配置文件:.vimrc。再启动vim时,当前根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置,创建命令为:$vi ~/.v原创 2017-12-05 20:11:11 · 526 阅读 · 0 评论 -
Linux---死锁及避免死锁的方法
死锁什么是死锁互斥锁是保护临界资源被线程间(或进程间)互斥的访问临界资源,当一个线程得到锁不释放时另一个线程申请时必须等待。当多个线程因为竞争资源而造成的一种僵局(互相等待),如果不施以援手,这些进程将永远等待。死锁产生的原因① 系统资源不足:系统中所拥有的资源其数量不足以满足线程运行的需要,使得在运行过程中,因争夺资源而陷入僵局。 ② 线程间推进顺序非法:线程间在运行过程中...原创 2018-08-20 12:35:06 · 6509 阅读 · 0 评论