shell大致功能实现 1.添加cd命令 2.实现管道命令”|” 3.错误提示 4.实现后台任务命令”&” 今日讲座 明日任务: 完善shell 今天讲座总结 作者:baidu_35085676 发表于2016/7/28 22:08:24 原文链接 阅读:9 评论:0 查看评论 继续阅读 >>


李余通 16/07/28 22:08:24
Linux 下的printf实现 http://www.cnblogs.com/chenglei/archive/2009/08/06/1540702.html 从main.c中的printf开始读这个函数。 首先看printf函数的定义: 1 static int printf(const char *fmt, ...) 2 { 3 va_list args; 4 int i; 5 6 va_start(args, fmt); 7 write(1,printbuf,i=vsprintf(printbuf, fmt, args)); 8 va_end(args); 9 return i; 10 } 参数中明显采用了可变参数的定义,而在main.c函数的后面直接调用了printf函数,我们可以看下printf函数的参数是 1 printf(“%d buffers = %d bytes buffer space\n\r”,NR_BUFFERS, 2 继续阅读 >>


校园 16/07/28 22:03:30
在最近的学习中,我试着把自己学习的知识点先记录在本子上,然后总结所学。 1.由实模式进入保护模式 2.程序的动态加载和执行 作者:wrx1721267632 发表于 2016/07/28 17:37:09 原文链接 https://blog.csdn.net/wrx1721267632/article/details/52056586 阅读:726 继续阅读 >>


王瑞欣 16/07/28 17:37:09
  标准输出指的是命令执行所传回的正确的信息,而标准错误输出可理解为命令执行失败后,所传回的错误信息。   标准输出(stdout)和标准错误输出(stderr),默认都是输出到屏幕上来,数据流重定向可以将stdout和stderr分别传送到其他的文件或设备去。   分别传送所用的特殊字符如下:  stdin:0,使用 < 或 <<  stdout:1,使用 > 或 >> 注:仅存在>时,代表默认的代码1  stderr:2,使用2> 或 2>> 例如执行命令:ll /home > ~/testfile 屏幕上无任何信息,因为原本“ll /home”显示的数据被重新导向~/testfile文件中了。 文件创建方式: 若以 > 输出到一个已经存在的文件中,那么这个文件就会被覆盖,若不存在,系统就会自动创建。与 >> 的区别是,>> 不会覆盖,而是在最下方累加进去。stderr 同理 例如:执行find命令经常会由于权限的原因产生错误信息. 继续阅读 >>


杜肖孟 16/07/28 17:12:35
GDT的由来: 在Protected Mode下,一个重要的必不可少的数据结构就是GDT(Global Descriptor Table)。 为什么要有GDT? 作者:wrx1721267632 发表于 2016/07/28 16:59:28 原文链接 https://blog.csdn.net/wrx1721267632/article/details/52056910 阅读:4253 评论:1 查看评论 继续阅读 >>


王瑞欣 16/07/28 16:59:28
一、执行新程序 使用fork或vfork创建子进程以后,子进程调用exec函数来执行另外一个函数。 exec函数族 #include<unistd.h> int execve(const char *path, char *const argv[], char *const envp[]); int execv(const char *path, char *const envp[]); int execle(const char *path, const char *arg, ...); int execl(const char *path, const char *arg, ...); int exevp(const char *file, char *const argv[]); int execlp(const char *file, const char *arg, ...); 用来替换进程映像的程序 exec函数实现程序 先编译第一个程序,生成可执行文件:gcc -o processimage proces 继续阅读 >>


闫钰晨 16/07/28 16:10:45
Linux文件与目录管理命令总结 Cd:切换目录 (~:回到自己主目录) Pwd 显示当前目录 (-P 可以避免显示链接路径) Mkdir 新建一个空目录(-p 可以递归创建目录) Rmdir 删除一个空目录 ( -r 删除目录下所有内容  -p 同时删除上层目录) PATH环境变量   编辑PATH声明:PATH=¥PATH<PATH1>:...:<PATH n> 添加PATH环境变量:export PATH = “路径”:$PATH                     Vim /etc/profile Ls: -F  继续阅读 >>


校园 16/07/28 15:13:45
创建进程 每个进程由进程ID号标识,进程被创建时系统就会为其分配一个唯一的进程ID. 创建进程的两种方式:   1.由操作系统创建   2.由父进程创建 *注意:     由操作系统创建的进程,它们之间是平等的,一般不存在资源继承关系.父进程创建的进程(子进程),它们和父进程存在隶属关系.子进程又可以创建进程,形成一个进程家族.子进程可以继承其父进程几乎所有的资源.      **创建一个子进程后,父进程和子进程争夺CPU,抢到CPU者执行,另外一个挂起等待.如果想要父进程等待子进程执行完毕以后再继续执行,可以在fork操作之后调用wait或waitpid    常见使用方法是子进程在被fork之和通过调用exec函数执行其他程序 fork函数   fork是创建一个新进程的唯一方法.在命令行下输入man 2 fork获得该函数的声明. #include<stdio.h> #include<unistd.h> pid_t fork(vo 继续阅读 >>


董孟愿 16/07/28 11:50:31
PHP 变量变量以 $ 符号开始,后面跟着变量的名称。变量名是区分大小写的($y 和 $Y 是两个不同的变量)。PHP 和 python 一样是一门弱类型语言,不用声明类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。 local:局部作用域,一般在函数内部定义。 global:全局作用域,在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个 作者:wwh578867817 发表于 2016/07/28 11:41:27 原文链接 https://blog.csdn.net/wwh578867817/article/details/52049224 阅读:511 继续阅读 >>


王伟豪 16/07/28 11:41:27
咱们从普通用户修改密码说起。 我们知道linux用户修改密码,最终修改的是/etc/shadow这个文件。可是我们用 ll /etc/shadow命令查看会发现此文件的权限为000,如下图: 也就是说,非root用户对此文件没有任何权限。 那矛盾就产生了:linux普通用户是有权限修改自己密码的,而普通用户又不俱备对/etc/shadow这个文件的任何权限。 linux操作系统为了解决这一问题,就产生了setUID权限。 我们了解在linux系统下,用户修改密码(也就是修改/etc/shadow文件)是通过passwd(此命令文件的绝对路径为/usr/bin/passwd,可以通过which passwd查看)这个命令的。我们用ll /usr/bin/passwd看一下此命令文件的权限,如下图: 发现/usr/bin/passwd的权限为:-rwsr-xr-x. 1 root root 在此“文件所有者”的第三位是s权限,也就是咱们本文提到的setUID权限。 回到咱们上面提出的问题,普通用户是怎么修改权限的。普通用户对/etc/shadow 继续阅读 >>


杜肖孟 16/07/28 11:33:57