
Linux
文章平均质量分 51
小栩栩
这个作者很懒,什么都没留下…
展开
-
linux中Vim配置
1)首先要找到vim的配置文件.vimrc, 输入ls -a查看,如果没有就自己新建一个 2)输入命令vim .vimrc进入这个文件中,并输入如下的语句: 这里对上述命令进行说明: 1:显示行号 2:语法高亮 3:突出显示当前行(就像最后一行,有一个横线) 4:Tab按键的宽度设为4 5:设置配色方案,这里我选的是murphy 6,7,8:设置自动缩进,大小是4原创 2016-05-29 16:03:24 · 273 阅读 · 0 评论 -
基于TCP的socket编程
server端:client 端:一个server在和两个client聊天~~~步骤:server端 1)调用socket(),创建套接字,返回值是文件描述符。 2)调用bind(),绑定ip和端口号。 3)调用listen(),监听等待连接状态的客原创 2016-07-25 16:55:32 · 407 阅读 · 0 评论 -
I/O多路转接之epoll
epoll的工作原理:epoll把用户关心的文件描述符上的事件放在内核的一张事件表里,所以不用像select那样,每次都要重复传入文件描述符。但epoll需要一个文件描述符来唯一标识内核中的这个事件表。这个文件描述符用函数epoll_create()来创建。epoll_wait()函数在一段时间内等待文件描述符中的事件,成功返回就绪事件的个数,失败返回-1。epoll_ctl()函数用原创 2016-07-31 11:23:22 · 287 阅读 · 0 评论 -
linux中安装gcc和g++
转自:http://www.cnblogs.com/myw31415926/archive/2013/03/13/myw31415926.htm 今天在linux的服务器上安装C/C++的编译器gcc和g++,运行了如下两条命令: 1 yum install gcc 2 yum install g++ 然后发现gcc可以正确安装,但安装g++时却提示: Can转载 2016-08-07 18:54:51 · 549 阅读 · 0 评论 -
I/O多路转接之select
系统提供select函数来实现多路复用输入/输出模型。传向select的参数告诉内核:1)我们所关心的文件描述符。2)对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)3)我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)从 select函数返回后,内核告诉我们以下信息:1)原创 2016-07-29 21:48:38 · 345 阅读 · 0 评论 -
shell脚本学习笔记之grep&正则表达式
grep命令是Linux中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep的主要参数:-c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配原创 2016-08-12 11:29:46 · 489 阅读 · 0 评论 -
硬链接和软链接的区别
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的转载 2016-08-12 15:28:41 · 386 阅读 · 0 评论 -
Linux学习笔记之命令总结
最近学了Linux,命令真的好多呀,总结一下吧~ 1)vim编辑器中命令模式下: 移动光标:shift+4 到行尾 shift+6 到行首 复制一行:yy 复制多行:n+yy 撤销:u 删除/剪切一行:dd 删除/剪切多行:n+dd 大小写切换:shift+~ 底行命令原创 2016-07-10 21:29:01 · 258 阅读 · 0 评论 -
Linux基础命令总结
ls 命令-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。-c 输出文件的 i 节点的修改时间,并以此排序。-d 将目录象文件一样显示,而不是显示其下的文件。-e 输出时间的全部信息,而不是输出简略信息。-f -U 对输出的文件不排序。-g 无用。-i 输出文件的 i原创 2016-08-13 11:08:26 · 333 阅读 · 0 评论 -
学习笔记之atexit()函数
最近在学习进程有关的知识,遇到了atexit()这个函数 这个函数有什么用呢?它会注册一个函数,当进程结束后就会调用被注册的函数。 可以看到它的参数是一个函数指针。 写一个简单的程序测试一下: 结果如下: 可以看到调用顺序并不是程序的顺序。在进程结束后才 调了fun()函数 那如果注册了10个函数,调用顺序又是怎样的呢? 注册的顺序是fun1,fun2,fun3,fun4,原创 2016-06-19 14:23:46 · 288 阅读 · 0 评论 -
关于管道的一些知识
今天学习了可以实现进程间通信的管道,其实说白了它也就是一个文件,只是它的功能比较特殊。 那么一个管道文件的最大容量是多少呢? 自己写了一个程序测了一下: 每次写五个字节,最后结果如下: 一共写了13104次,13104*5=65520B 约为64KB 我装的系统是64位的centos,它的大小会不会也与平台有关呢? 不过找了半天,也没找到相关的内容,这个问题姑且先留着吧。。。还有原创 2016-07-02 10:49:29 · 454 阅读 · 0 评论 -
Linux中的find 指令
find是个很强大的搜索命令,命令格式为 find [PATH] [option] [action] 具体例子: 1.与时间有关的选项,有-atime,-ctime,-mtime 先说明这三个选项的意义 -atime (access time):是在读取文件或者执行文件时更改的 -ctime(cre原创 2016-05-29 15:56:05 · 367 阅读 · 0 评论 -
Linux中的task_struct
task_struct是Linux系统中的PCB,用来记录进程中的一系列信息。struct task_struct {volatile long state; //说明了该进程是否可以执行,还是可中断等信息unsigned long flags; //Flage 是进程号,在调用fork()时给出int sigpending; //进程上是否有待处理的信号mm_seg原创 2016-05-30 23:45:13 · 1417 阅读 · 0 评论 -
Linux下的第一个小程序之进度条
我们在使用一些软件的时候经常会看到一个进度条跑呀跑呀,那么我们如何用C语言来实现它呢? 首先我们需要了解一些基础知识: 1)并不是进度条自己在往前跑,而是因为每个时刻看到的进度的长度不一样,这样人眼就会看到一个动态的效果,好像是进度条在增长。 2)在屏幕上打印字符串我们需要用到C语言中的printf函数。 我们要实现在同一行先打印一个“=“,然后光标回到最左边,再打印”==“,之后再打印”=原创 2016-06-05 15:56:07 · 452 阅读 · 0 评论 -
进程调度算法的总结
1)先来先服务算法(FCFS):是一种最简单的调度算法,每次调度都是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或者发生某事件而被阻塞后才放弃处理机。该算法有利于长作业,而不利于短作业。 2)短进程优先算法(SPF):从就绪队列中选出估计运行时间最短的进程,将处理机分配给它,使它一直执行到结束,或发生某事件的阻塞而放弃处理机时再被调度。 3)优先权原创 2016-06-12 15:44:40 · 2083 阅读 · 0 评论 -
error: The requested URL returned error: 403 Forbidden while accessing https
今天在Linux中使用git,在最后push的出现了这种情况: 在网上找到一种解决方案: vim .git/config 然后这样修改 xxxxxx是github的用户名。 本来应该是这样的: url = https://github.com/xxxxxx/msg_queue.git 结果又出现了如下的问题: 后来找了好久,才找到解决的方案,在命令行再输入unset SS原创 2016-07-10 21:47:02 · 805 阅读 · 0 评论 -
对fork()函数的探究
在Linux环境下,创建一个新的进程,要用fork()函数调用fork()成功后,会有一个新的进程,它是父进程的一个副本,并采用“写时拷贝”的思想使用各类资源。两个进程都从fork()函数中返回,所以会有两个返回值,它会给父进程返回子进程的pid,给子进程返回0。有一个程序如下: 运行结果: 这里我们很容易能够分析出来,因为父子进程代码段共享,所以它们会打印出各自的pid; 如果把上述原创 2016-06-14 23:55:37 · 311 阅读 · 0 评论 -
Linux学习笔记之对信号集的操作
每个信号都有两个标志位分别表⽰示阻塞(block)和未决(pending),还有⼀一个函数指针表示示处理动作。一旦信号被阻塞后,信号产生后就会处于未决状态,直到信号阻塞被解除。对信号的处理就是递达,有三种方式:忽略;执行默认动作;执行自定义动作所以信号要经历的过程是产生–>未决(被阻塞时)–>递达系统提供了一系列对信号集操作的函数: int sigemptyset(sigset_t *set)对信原创 2016-07-12 16:12:18 · 372 阅读 · 0 评论 -
Linux下的五种I/O模型
Linux下共有五种I/O模型。阻塞I/O,非阻塞I/O,I/O复用(select和(e)poll),信号驱动I/O(SIGIO),异步I/O原创 2016-07-27 12:09:23 · 442 阅读 · 0 评论