linux
maopaopao2087
这个作者很懒,什么都没留下…
展开
-
关于shell和终端(terminal)
你启动了一个终端(terminal),你就同时启动了一个shell,这个终端作为输入输出,由shell将输入的命令通过查找环境变量启动应用程序。shell本身也是内核自带的一个应用程序。原创 2015-05-15 22:28:09 · 854 阅读 · 0 评论 -
关于几个信号
CTRL+C 送的是SIGINT信号,默认进程会结束。CTRL+Z 送得是SIGSTOP信号,进程被停止,被挂起(suspend),再送一个SIGCONT信号,进程会继续执行。CTRL+D 不是发送信号,而是表示一个特殊的二进制值,表示EOF。原创 2015-06-13 16:47:26 · 447 阅读 · 0 评论 -
关于start-up routine 和 exec 和main()
http://stackoverflow.com/questions/4595910/what-is-the-need-for-c-startup-routine请参考这个文章。 我们编写main()函数,以为函数是从main()函数开始执行,其实不是这样的。对于kernel来讲,光是把main()函数拿过来直接开始执行是不行的,需要对main()进行预处理。这个就是start-up原创 2015-07-04 08:57:16 · 524 阅读 · 0 评论 -
一个简单地Shell-like 的实现
下面的一个程序是shell的简单实现,虽然简单,但是原理是相同的。请仔细体会。//shell-like function#include "apue.h"#include int main(int argc,char *argv[]){ char buf[MAXLINE]; pid_t pid; int stat原创 2015-07-27 09:31:22 · 1305 阅读 · 0 评论 -
计算机是如何处理按键输入的字符的
看下面的一个例子,shell的一个基本实现的例子,可以编译运行一下。 当从键盘按下一个键时, 电脑会产生一个中断,有一个中断接收程序,来接收这个字符。中断接收程序对接收到的程序进行判断处理,比如说是控制字符还是可显示字符,对每个控制字符改怎么处理啊,对可显示字符要不要写入RxBUF啦,等等情况,最后接收完了,再回到主循环。什么时候接收完呢,就是中断接收程序接收到了一个Enter原创 2015-07-28 14:01:21 · 2139 阅读 · 0 评论 -
Unix系统中的系统调用和库调用
系统调用:System calls 库函数: Library Functions系统调用是内核提供的接口(entry points),库函数是对系统调用接口的封装。Version 7 : 50个。4.4BSD: 110个。SVR4: 120个。Linux: 根据版本不同,有大概240~260个系统调用。Free BSD: 320个。系统调原创 2015-07-30 10:41:21 · 720 阅读 · 0 评论 -
为什么数组的BUFFSIZE要定义为4096比较好?
先看一个程序://page 69#include "apue.h"#define BUFFSIZE 4096int main(int argc,char *argv[]){ int n; char buf[BUFFSIZE]; while ((n =read(STDIN_FILENO,原创 2015-08-06 20:15:01 · 5597 阅读 · 0 评论