Linux系统编程
文章平均质量分 62
伍粟
菜鸟码农
展开
-
简明握要分析大端模式与小端模式
大端模式与小端模式最高有效字节在最低位,则为大端模式,反之,则为小端模式。假设变量X为int 类型,位于地址0x100处,它的16进制值为0x01234567.地址范围为0x100~0x103的字节顺序依赖于机器的类型:...原创 2021-12-29 21:08:48 · 178 阅读 · 0 评论 -
7、互斥锁、读写锁、信号量、条件变量(linux系统编程)
1 互斥量(也叫互斥锁)第1步:创建一把互斥锁pthread_mutex_t mutex;初始化互斥锁pthread_mutex_init(&mutex);---相当于mutex=1在代码中寻找共享资源(也称为临界区)pthread_mutex_lock(&mutex); -- mutex = 0[临界区代码]pthread_mutex_unlock(&mutex); -- mutex = 1释放互斥锁资源pthread_mutex_destroy(&原创 2021-04-28 17:36:09 · 225 阅读 · 0 评论 -
6、守护进程、线程(linux系统编程)
1 守护进程介绍Daemon(精灵)进程,是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程的特点:1 一个linux后台服务进程2 不依赖于控制终端3 周期性执行某些任务4 不受用户登录和注销的影响5 一般以d结尾进程组和会话:进程组: 一个进程包含多个进程会话: 多个组组成一个会话.创建会话的进程不能是组长进程;一般创建会话是父进程先fork子进程, 然后父进程退出, 让子进程调用setsid函数创建一个会话, 这原创 2021-04-27 21:02:35 · 273 阅读 · 0 评论 -
4、进程间通信(pipe、fifo、共享内存(shm、mmap函数实现代码))(linux系统编程)
进程间通信:任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。进程间通信的方式:在进程间完成数据传递需要借助操作系统提供特殊的方法,进程间的七大通信方式signal、file、pipe(管道(Pipe)及有名管道(named pipe):就是pi原创 2021-04-25 20:39:50 · 492 阅读 · 0 评论 -
3、进程控制(linux系统编程)
1、程序和进程的概念:程序: 是编译好的二进制文件, 存放在磁盘上, 占用的是磁盘空间, 是一个静态的概念.进程: 一个启动的程序, 需要占用系统资源: 如 内存, cpu 终端 等剧本—>程序进程—>唱戏(舞台, 灯光, 道具, 人等资源)同一个程序可以在多个终端执行, 类似与同一台戏可以在多个舞台演出.没启动一个程序都会有一个进程PID, 即使是相同的程序多次启动也会有个不同的PID.2、并行和并发的概念:并发: 在一个时间段内, 一个CPU上, 有多个程序在执行.并行:原创 2021-04-23 19:10:55 · 147 阅读 · 0 评论 -
2、文件IO操作(linux系统编程)
1、文件读写 //IO函数测试--->open close read write lseek#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,原创 2021-04-22 18:06:07 · 164 阅读 · 0 评论 -
1、Linux 的makefile 、gcc、gdb调试(linux系统编程)
静态库的制作过程:1 将.c文件生成.o文件 gcc -c add.c divd.c mul.c sub.c2 使用ar命令将.o文件打包成静态库文件 ar rcs libtest1.a add.o divd.o mul.o sub.o静态库的使用:gcc -o main1 main.c -I./ -L./ -ltest1动态库的制作:1 将.c文件生成.o文件 gcc -fpic -c add.c divd.c mul.c sub.c2 使用gcc将.o文件编译成动态库文件 gc原创 2021-04-21 19:34:48 · 205 阅读 · 0 评论