目录
一.Linux常用命令
man
查看Linux帮助手册,当忘记某个命令用法时,可以使用此命令去查看相应用法
ls
显示所有文件夹
mkdir
创建一个文件夹,比如mkdir program创建一个program文件夹
rm
删除文件夹,比如 rm program删除program文件夹
cd及相关命令
进入文件夹,比如cd program 进入program文件夹,
和这个命令相关的还有:cd .. :返回上一级目录,cd - :返回最近访问目录,cd 后输入想进入文件的首字母+TAB键,会自动补全
cat
cat 接文件名,读取文件内容
less
这个命令也是查看文件的命令,但是带有翻页功能,使用上下键可以翻页
head
查看文件开头的内容,默认是前10行,通过head-n 接文件名可以指定显示文件具体行数
tail
查看文件的末尾,默认后10行
echo
向文件中写入内容,用法是 echo 接内容 > 文件名,
使用cat读取文件里面内容:
mv
移动一个文件夹 ,或者重命名
vim
vim命令是创建并打开一个Linux系统上的记事本,如果已经创建就打开文件,一般编辑代码就是在里面编辑
:wq
强制性写入文件并退出 ,一般是进入文件里面编辑后退出到终端命令行,先按Esc后输入,与之相似的还有
wq!:强制保存并退出,(!表示强制执行)
x:保存退出,:x 表示写入文件并退出
:q表示退出,:!q表示强制不保存退出,不对文件进行保存
还有使用上下键能快速复制上下命令
二.如何编写一个C程序
首先创建一个.c后缀的文件,我是放到program文件夹下,如下
进入后按i开始编辑程序,如下
编辑完成后首先按Esc键,然后输入:wq退出使用gcc编译:输入gcc 文件名.c -o 文件名,比如gcc hello.c -ohello如下
编译之后运行:./文件名,如./hello然后就能看到运行结果了
三.创建进程
fork函数
函数原型:pid_t fork(void)
通过复制正在调用的进程来创建一个新进程,这个新进程称为子进,程创建进程使用fork函数,父进程:返回子进程id号,子进程:返回0,失败:返回-1,使用时需要添加头文件#include<sys/types.h>和#include<unistd.h>,使用pid_t定义比如,pid_t pid = fork();
waitpid函数
函数原型:pid_t waitpid(pid_t pid,int *status,int options)
作用:当用fork启动一个新的子进程的时候,子进程就有了新的生命周期,并将在其自己的地址空间内独立运行。使用Waitpid函数能知道子进程什么时候结束
参数作用:pid
pid>0时,等待进程id等于pid的子进程,只要指定的子进程还没有结束,就会一直等下去。pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用时一样的pid=0时,等待同一个进程组中的其他任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬。
status:保存子进程退出的状态
option:控制waitpid使用阻塞还是非阻塞
利用fork创建2个子进程
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
int main()
{
pid_t pid1,pid2;
pid1 = fork();
if (pid1 < 0)
{
printf("fork fail\n");
exit(-1);
}
else if ( pid1 == 0 )
{
printf("B\n");
}
else
{
pid2=fork();
if(pid2<0)
{
printf("fork error 2\n");
}
else if(pid2==0)
{
printf("C\n");
}
else
{
printf("A\n");
waitpid(pid1,NULL,0);
waitpid(pid2,NULL,0);
printf("my son has exit!\n");
}
}
return 0;
}
运行结果: