This commit is contained in:
chenyf 2024-02-24 10:05:41 +08:00
parent c1f942980e
commit 58cc03b9b6
3 changed files with 55 additions and 2 deletions

5
fock/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"files.associations": {
"unistd.h": "c"
}
}

Binary file not shown.

View File

@ -1,5 +1,53 @@
#include <stdio.h> #include <stdio.h>
int main(void){ #include <sys/types.h>
printf("hello\n"); #include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/wait.h>
#include <sys/stat.h>
#include <signal.h>
extern char **environ;
int weak_process(){
printf("get signal\n");
}
int main(void)
{
// 获取进程ID
printf("I am %d \n", getpid());
printf("My parent is %d\n", getppid());
// 打印环境变量
// char **env = environ;
// while (*env != NULL)
// {
// printf("%s\n", *env);
// *env++;
// }
// fock创建进程
// fock创建的子进程一般用来执行新的程序
signal(SIGUSR1,weak_process);
pid_t pid = fork();
if (pid == 0)
{
printf("I am child process %d\n", getpid());
sleep(10);
_exit(0);
}
else if (pid > 0)
{
sleep(1);
kill(pid,SIGUSR1);
wait(NULL);
// printf("pit = %d\n",pid);
printf("I am parent process %d\n", getpid());
}
else
{
printf("fork error\n");
}
return 0; return 0;
} }