Wang Fu

Here's my blog :)

Unix系统下CTRL-Z和CTRL-C的区别

Unix系统下CTRL-Z和CTRL-C的区别

平时在命令行下执行命令的时候,都是习惯用CTRL-Z或者CTRL-C来退出当前执行的命令,比如正在Ping XXX的时候想要退出等。 只知道通过CTRL-Z和CTRL-C都能实现退出当前执行命令的功能,但是两者的区别却并不清楚,今天查了下资料才搞清楚。

首先是相同点:

CTRL-Z和CTRL-C都是中断命令,都能够中断当前正在执行的命令。

然后是不同点:

  • CTRL-C:CTRL-C是强制中断命令,执行此命令后,原正在执行的命令被强制结束,进程退出。
  • CTRL-Z:CTRL-Z是中断并挂起命令,执行此命令后,原正在执行的命令被中断并挂起在后台,进程未退出。后续可以通过fg或者bg命令恢复指令,fg继续前台执行,bg继续后台执行。

More...

头文件是如何参与编译的

头文件是如何参与编译的

最近在看C语言的编译与链接的内部实现,这是比较基础的内容,但是又往往很容易被忽视,因为各种IDE尤其是VS的强大集成功能将编译和链接的实现给隐藏了。

至于编译与链接的具体过程并非本文内容,本文实际要讲的是我在自学时发现的一个有趣内容,头文件的编译参与问题。

有些文章说过头文件不参与编译,其实严格来说头文件是参与编译的。
在预编译源文件的时候,凡是遇到#include的时候,就会把XX的文本内容全部复制到相应的位置。
然后被编译的源文件其实是 【头文件文本内容】+【源文件文本内容】

这有点宏定义的感觉~

More...

Unix 下的文件连接

Unix 下的文件连接

实例

今天因为某些原因,需要通过命令行来用sublime打开某个隐藏文件,但是sublime的命令并不在usr/bin目录下,所以无法使用简洁的命令行来打开某个文件。 后来查了一些资料,发现sublime text 2的命令行工具在这:

/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl

如果你不嫌麻烦的话,可以每次都用这个命令来打开文件

/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl XXX

其实我们可以通过Unix自带的文件连接功能,在usr/bin目录下创建一个subl的软连接文件,这样我们就可以直接通过命令行输入subl XXX来实现使用Sublime打开指定文件的目的。

先把创建软连接的命令写在这里:

ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl

这样,我们就在/usr/bin目录下创建了一个subl文件,这个文件是一个指向/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl的软连接。

Codeup-Mac:bin Codeup$ ls -l grep subl
-rwxr-xr-x  3 root  wheel  30096 10 24 20:09 grep
lrwxr-xr-x  1 root  wheel     64 12  1 00:13 subl -> /Applications/Sublime Text

More...