终端clear清屏的实现
摘要:刚才在看busybox源码的时候看见clear的实现,主要语句就一条。printf("\033[H\033[J"); 这一条语句就可以在终端下清屏,我感觉这非常神奇,但不懂原因。先记录在这里。
阅读全文
posted @
2013-02-18 20:13
NeilHappy
阅读(1070)
推荐(1)
busybox源码剖析(3)---cat.c
摘要:cat显示一个文件的内容。需要注意的是,cat并不能处理目录。 1 extern int cat_main(int argc, char **argv) 2 { 3 int status = EXIT_SUCCESS; 4 5 if (argc == 1) { 6 print_file(stdin); 7 return status; 8 } 9 10 while (--argc > 0) {11 if(!(strcmp(*++argv, "-"))) {12 print_file(...
阅读全文
posted @
2013-02-15 12:25
NeilHappy
阅读(2287)
推荐(0)
busybox源码剖析(2)---pwd.c
摘要:pwd命令是列出当前的路径。 1 extern int pwd_main(int argc, char **argv) 2 { 3 static char *buf; 4 5 buf = xgetcwd(buf); 6 7 if (buf != NULL) { 8 puts(buf); 9 return EXIT_SUCCESS;10 }11 return EXIT_FAILURE;12 } 通过xgetcwd函数将路径保存到buf中。char *xgetcwd (char *cwd){ ch...
阅读全文
posted @
2013-02-15 11:07
NeilHappy
阅读(1335)
推荐(0)
busybox源码剖析(1)---whoami.c
摘要:想找个简单的代码来看,学习代码的架构设计,就找到了busybox。先从最早的版本开始看。 whoami命令是获取当前终端的用户名。/etc/passwd文件存储了所有用户名的清单。要注意的是/etc存储的配置文件大多是系统级的配置文件。而whoami想要达到目的,就需要与/etc/passwd文件打交道。 首先来看whoami.c的主体程序: 1 extern int whoami_main(int argc, char **argv) 2 { 3 char user[9]; 4 uid_t uid = geteuid(); 5 6 if (argc > 1)...
阅读全文
posted @
2013-02-14 21:42
NeilHappy
阅读(3160)
推荐(1)