华清远见嵌入式培训_第七周回顾与反思(上)

本文回顾了Linux下进程相关的函数,如getpid、getppid、exit、_exit、wait与waitpid,讨论了守护进程的创建与特点。此外,还介绍了多线程概念及pthread函数,包括pthread_create、pthread_self、pthread_exit等,并提到了线程安全问题。
摘要由CSDN通过智能技术生成

前言

        七天的国庆假期已经结束,紧接着的是七天的工作日,前几天的我感叹假期七天有多短,此时此刻的我就感叹七天有多长!

        言归正传,本周的前五天课里,紧接着假期前的IO进程课程,第一天学习了:进程中各种常用函数的接口,多进程中的守护进程;第二天学习了:多线程的创建、执行、退出和回收和线程中各种常用函数的接口;第三天学习了:线程间的通信,包括互斥锁、无名信号量和条件变量,传统进程间通信方式的一部分,包括无名管道和有名管道;第四天学习了:传统进程间通信中的信号,SystemV引入的IPC进程间通信中的消息队列和共享内存;第五天学习了:SystemV引入的IPC进程间通信中的信号灯集,下午进行了这门课的考试,最后会附上这套试卷的改错和分析。

        这门课的主要特点是函数接口多、要熟悉和记忆的内容多、易混淆的知识点多,这几天的内容中,重点和难点是线程间通信进程间通信,因此,本次的总结反思将针对这几方面,进行整理归纳,难点分析和易混淆点辨析。

        同样,写此文章,是想以这种碎碎念的方式回顾重点、重复盲点、加深印象,复习、总结和反思本周的学习,仅供后期自己回顾使用。知识体系不够完善,内容也不够详细,仅供笔者复习使用。如果是有需要源码和笔记、或者对这方面感兴趣的同学,都可以私信我,发你完整的知识体系和详细内容的笔记。如有任何错误请多指正,也欢迎友好交流,小弟定会虚心听取大佬们的宝贵意见!

周六

一、进程相关的函数接口

1.1 getpid / getppid函数

        直接从字面意思理解,获取当前进程的pid和父进程的pid,功能参数返回值如下,着重注意这两个函数的返回值。

pid_t getpid(void);
功能:获取当前进程的进程号
参数:
    @无
返回值:返回当前进程的pid
pid_t getppid(void);
功能:获取父进程的进程号
参数:
    @无
返回值:返回父进程的pid

1.2 exit / _exit函数

        字面意思理解,退出(结束)进程的函数;

        注意两个函数的区别:exit结束进程时会刷新缓存区,_exit结束进程时,不会刷新缓存区

        和 return 区分:return本身并不具备结束进程的功能,只有当return在main函数中使用的时候

才具备结束进程的功能。

#include <stdlib.h>
void exit(int status);
功能:用来结束一个正在执行的进程,会刷新缓冲区(库函数)
参数:
    @status:进程退出状态值
     #define EXIT_FAILURE 1  //失败退出
     #define EXIT_SUCCESS 0  //成功退出
返回值:无

#include <stdlib.h>
void _exit(int status);
功能:用来结束一个正在执行的进程,不会刷新缓冲区(系统调用)
参数:
    @status:进程退出状态值
返回值:无

练习:

程序代码如下,请按执行顺序写出输出结果。


#include <head.h>
int main()
{
    pid_t pid1, pid2;

    if ((pid1 = for

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值