mtgo666
mtgo666
全部文章
Linux学习笔记
STL(7)
基础算法(9)
学习笔记(10)
题解(26)
归档
标签
去牛客网
登录
/
注册
mtgo666的博客
全部文章
/ Linux学习笔记
(共10篇)
不适用额外空间交换两个数
1、简介 平时交换两个数的代码很简单,只需要借助temp辅助变量,比如: int a = 5; int b = 6; int temp = a; a = b; b = temp; 即可完成交换。但是假如在面试中让你不使用额外空间交换两个数呢? 2、方法 2.1 方法一:数学 int a = 5; ...
C++
数学
2022-08-29
0
557
线程同步
1、概念 线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。 2、练习 创建两个线程,让两个线程共享一个全局变量int g_var, 然后让每个线程数5000次数,看最后打印出这个 g_var 值是多少? 2.1 代码实现 理论上...
C
2022-04-01
1
435
pthread_exit & pthread_join
1、简介 介绍一下 pthread_exit 和 pthread_join 这两个函数的用法。并且通过一个练习来完成主线程对子线程的回收。 2、pthread_exit 在线程中禁止调用exit函数,否则会导致整个进程退出,取而代之的是调用pthread_exit函数,这个函数是使一个线程退出,如果...
C
2022-03-31
0
395
循环创建子线程
1、需求 让主线程循环创建五个子线程,并让子线程判断自己是第几个子线程。 2、分析 我们只需要利用for循环创建子线程,并且在线程处理函数中打印自己是第几个就OK。 3、代码实现 //循环创建子线程 #include <stdio.h> #include <pthread.h>...
C
2022-03-31
1
611
使用SIGCHLD信号完成对子进程的回收
1、SIGCHLD信号 1.1 信号作用 子进程退出后,内核会给它的父进程发送SIGCHLD信号,父进程收到这个信号后可以对子进程进行回收。 使用SIGCHLD信号完成对子进程的回收可以避免父进程阻塞等待而不能执行其他操作,只有当父进程收到SIGCHLD信号之后才去调用信号捕捉函数完成对子进程的回收...
C
#linux
2022-03-24
0
1205
测试你的电脑一秒能打印多少个数字(printf函数)
1、简介 我们写一个测试程序,来测试下我们的电脑一秒钟可以打印出多少数字。思路很简单,我们只需要利用alarm函数定时1s。然后在while(1)中不断打印变量值就好。 2、代码实现 #include <stdio.h> #include <stdlib.h> #includ...
C
#linux
2022-03-19
0
462
关于dup2()函数
1、简介 我们想要复制一个文件描述符的话,经常会使用dup()函数和dup2()函数。关于dup()函数的使用十分简单,但是很多人在使用dup2()函数进行文件重定向的时候会有疑问,总觉得两个参数是反的。接下来我说一下对这个函数的理解。^-^ 2、dup2()函数 2.1 头文件和函数原型 #inc...
C++
#linux
2022-03-09
1
3607
进程回收函数——wait和waitpid
1、进程资源为什么要回收? 当一个进程退出之后,进程能够回收自己的用户区的资源,但是不能回收内核空间的PCB资源,必须由它的父进程调用wait或者waitpid函数完成对子进程的回收,避免造成系统资源的浪费。 2、孤儿进程和僵尸进程 2.1 孤儿进程 若子进程的父进程已经死掉,而子进程还存活着,这...
C
#Linux
#进程回收
2022-02-25
0
1182
execl和execlp函数
一、exec函数族 有的时候需要在一个进程里面执行其他的命令或者是用户自定义的应用程序,此时就用到了exec函数族当中的函数。 使用方法一般都是在父进程里面调用fork创建处子进程,然后在子进程里面调用exec函数。 二、exec函数族实现原理图 比如在子进程中执行ls -l命令: 子进程在执行l...
C
#多进程
2022-02-25
0
1236
父子进程能否共享全局变量
1、关于子进程 首先我们要知道,当利用fork函数创建出一个子进程之后,子进程会复制父进程的虚拟地址空间,也就是说子进程会复制父进程的数据段。那么接下来我们就要验证子进程与父进程能否共享全局变量。 2、验证思路 很简单,我们只需要定义一个全局变量,这父进程中修改该全局变量,在子进程中读取该全局变量...
C
交互
#Linux
#多线程
2022-02-24
0
6139