linux正在进步
作为还算没有入门的小子,今天学习了shell、linux编译、fork函数
1)shell
一个命令解释器;
是操作系统的外壳;
是用户与linux内核之间的接口程序;
shell命令分为shell内部命令(如cd) 和外部命令(指单独的实体程序,如rm,cp)
shell的命令后跟有选项和参数,选项前有一个减号,以示区别。
shell本身也是一个解释型的程序设计语言
普通用户提示符:$,超级用户(ROOT)提示符:#
shell种类很多:bourne shell(sh),c shell(csh),korn shell(ksh),sh 的升级版:bourne Again shell( bash)。
linux默认使用sh 或bash。
shell中存在特殊字符:通配符 * ? [ ],引号(单引号、双引号、反引号)
2)linux C编译:
源码编译,makefile编写,库连接,调试
makefile文件的特殊字符:
$@ 表示目标文件
$^ 表示依赖文件
$< 表示第一个依赖文件
3) fork函数
创建子进程的样板代码如下所示:
pid_t child;
if((child = fork())<0)
/*错误处理*/
else if(child == 0)
/*这是新进程*/
else
/*这是最初的父进程*/
fock函数调用一次却返回两次;向父进程返回子进程的ID,向子进程中返回0,
这是因为父进程可能存在很多过子进程,所以必须通过这个返回的子进程ID来跟踪子进程,
而子进程只有一个父进程,他的ID可以通过getppid取得。