编译,链接和加载介绍

2019-07-12
阅读 4 分钟
6.1k
整个过程 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E,对应于预处理命令cpp; 编译器:将.c/.h文件转换成.s文件,使用的gcc命令是:gcc –S,对应于编译命令 cc –S; 汇编器:将.s 文件转化成 .o文件,使用的gcc 命令是:gcc –c,对应于汇编命令是 as; 链接器:将.o文件转化成可执行程序,使用的gcc 命...

pseudo-terminal 基础一

2019-07-12
阅读 13 分钟
5.3k
The openpty() function finds an available pseudo-terminal and returns file descriptors for the master and slave in amaster and aslave. If name is not NULL, the filename of the slave is returned in name. If termp is not NULL, the terminal parameters of the slave will be set to the values in termp....

多窗口管理器Tmux - 从入门到精通

2018-09-05
阅读 8 分钟
15.1k
tmux 的基本概念 我们先来理解下 tmux 的几个元素。tmux 的主要元素分为三层 Session 一组窗口的集合,通常用来概括同一个任务。session 可以有自己的名字便于任务之间的切换。 Window 单个可见窗口。Windows 有自己的编号,也可以认为和 ITerm2 中的 Tab 类似。 Pane 窗格,被划分成小块的窗口,类似于 Vim 中 C-w +v ...

VIM与模糊搜索神器FZF的集成用法 - 从简单到高级

2018-08-29
阅读 8 分钟
24.7k
fzf本身并不是一个vim 插件,本来作者只提供了基本的wrapper函数(比如fzf#run). 但后来作者发现很多人并不熟悉VIMScript, 所以就创建一个默认的vim plugin.

模糊搜索神器FZF番外篇

2018-08-28
阅读 3 分钟
9.7k
什么是模糊搜索?广义的模糊搜索是指允许被搜索信息和搜索提问之间存在一定的差异,这种差异就是“模糊”在搜索中的含义。例如,查找名字Smith时,就会找出与之相似的Smithe, Smythe, Smyth, Smitt等。但我们这里模糊搜索特指搜索关键词离散且乱序。看如下的搜索,我的关键词是“a t dir go 15 6”, 搜索到的结果是“app/g...

最快的文本搜索神器ripgrep -- grep的最好代替者

2018-08-27
阅读 11 分钟
30.2k
说到文本搜索工具,大家一定会知道 grep, 它是 linux 最有用并最常用的工具之一。但如果要再一个大的工程项目中搜索某个关键词,大家也一定知道它比较耗时。所以就有了很多替代工具,之前最出名的是 Ack,Ag而最近又有了新的替代者 Ripgrep, 这个工具和 Ack/Ag 一样都使用了多线程的方法,但 rg 比它们更快

在linux下模拟win+arrow来左右半屏当前窗口

2017-09-26
阅读 9 分钟
3.5k
用习惯了windows下的win+arrow来左右窗口,在linux觉得非常不方便的。所以上网看一下在RHEL6上可以使用的方法。因为不想依赖compiz,所以找到的最好方法是xdotool.虽然不太完美,但可以满足80%的需求了。

模糊搜索神器fzf

2017-09-23
阅读 5 分钟
34.4k
fzf是目前最快的fuzzy finder。使用golang编写。结合其他工具(比如ripgrep和fd)可以完成非常多的工作。让你通过输入模糊的关键词就可以定位文件或文件夹。当你的思维也习惯了模糊匹配后,在工作中可以大幅提高你的工作效率。模糊搜索的概念如下,你记得文件名含有con, te, go, 那么你只需要把所有文件送给fzf, 然后在窗...

超快的文件搜索工具Ag

2017-09-23
阅读 5 分钟
16.4k
前言 Ag 是类似ack, grep的工具, 它来在文件中搜索相应关键字。官方列出了几点选择它的理由: 它比ack还要快 (和grep不在一个数量级上) 它会忽略.gitignore和.hgignore中的匹配文件 如果有你想忽略的文件,你需要将(congh .min.js cough*)加入到.ignore文件中 它的命令名称更短:-) 安装 源码安装 下载源码 下载地址:...

快速跳转工具--FASD 简单介绍

2017-09-23
阅读 3 分钟
30.7k
fasd是一个命令行加速工具。它提供了对文件和文件夹的快速访问。它和autojmp, z, v都很相近。它会记录你访问过的文件夹和文件, 然后你就可以通过简短的名字来直接访问它们。fasd会对访问过的文件和文件夹按照使用频率排序,然后按照频率列出所有文件和文件夹

vim高级技巧之生成序列

2017-09-11
阅读 4 分钟
9.7k
在vim中插入数字序列的方法 待处理文本 假设文本原来内容是 这是第一行 这是第二行这是第四行 这是第五行 插入行号变成 1 这是第一行2 这是第二行34 这是第四行5 这是第五行 还有一种想要的效果是 这是第一行 line[1]这是第二行 line[2]这是第三行 line[3]这是第四行 line[4] 下文会对上面两种需求都给出答案,利用下面...

进程间通信之匿名管道阐述

2017-08-26
阅读 5 分钟
3.4k
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。如下图所示。

对于fork()用法的初步探讨

2017-08-19
阅读 6 分钟
6.2k
现代CPU太快了,所有的资源(RAM, device, bus..)都无法填满它。所以有多个任务时,CPU就轮流着来处理。得到CPU资源时,其他总线,显卡,RAM等等都要准备好,这样就构成了我们程序执行的上下文。等执行完或CPU分配给它的时间用完了,它就要被切换出去,等待CPU的下一次临幸。当然切换出去之前会保存上下文。所以从CPU的...

命名管道的阻塞和非阻塞模式的初步探讨

2017-08-18
阅读 10 分钟
11.6k
进程间通信(IPC, InterProcess Communication)是指在不同进程之间传播或交换信息。主要的方式有管道(包括无名管道,高级管道和命名管道),消息队列, 信号量, 共享内存, Socket等。 其中Socket可以用于不同主机上的进程间通信。进程通信的主要目的如下:

Verilog PLI介绍及运行NC的三种方法

2017-08-10
阅读 4 分钟
10.1k
Verilog PLI(Programming Language Interface )是一种Verilog代码调用C/C++函数的机制。它能让Verilog像调用一些系统调用(如$display/$stop/$random)一样调用用户编写的C/C++函数,这样我们可以用C/C++语言开始自己的system task/function, 来实现用verilog不太方便的功能,并与外界建立了联系。PLI可以完成如下功能: