
Linux开发
文章平均质量分 73
linux系统下相关知识分享
键盘会跳舞
不积跬步,无以至千里
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux基础——(2)动态加载函数库
结合(1)中讲到的动态库的打包制作和编译链接,这里讲一下动态加载函数的使用。demo部分代码如下:// demo.c#include <stdio.h>#include <dlfcn.h>int main(void){ // 加载动态库文件 void *handle = dlopen("libmath.so",RTLD_...原创 2019-04-10 22:46:08 · 743 阅读 · 0 评论 -
Linux环境下获取当前主机的IP/MAC等信息(C/C++)
本文介绍在unix环境下获取当前主机IP,MAC地址等网络接口信息。在不确定设备网卡类型的情况下,通过预先定义几种可能的网卡类型,然后依次遍历可能的设备如eth0,eth1,借助ioctl函数获取主机的全部网络接口信息。ioctl函数可以获取所在主机的全部网络接口信息,包括接口地址(IP,MAC,MASK…)、是否支持广播等。ioctl函数的头文件没有标准化,许多系统在“unistd.h中定义,而...原创 2018-03-06 08:40:46 · 2210 阅读 · 6 评论 -
Linux下UDP广播的deamo
deamo1:【下位机执行发送广播文件,上位机可抓包到UDP通讯数据】#include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/types.h>#include<sys/socket.h>#include<sys/wait.h>#includ...原创 2018-03-09 17:40:21 · 537 阅读 · 0 评论 -
Linux 获取本机IP、MAC地址用法大全
getifaddrs()和struct ifaddrs的使用,获取本机IP ifaddrs结构体定义如下: 1 struct ifaddrs 2 { 3 struct ifaddrs *ifa_next; /* Next item in list */ 4 char *ifa_name; /* Name of interf...转载 2018-03-12 14:00:02 · 496 阅读 · 0 评论 -
Linux基础——(1)静态库、动态库的制作和使用
决心重新把以前学习的Unix/linux的知识重新梳理一遍。内容比较基础,但实际也很有趣。实际上,在接触了多种语言之后,我依然坚定的认为C/C++是最有魅力的语言。所以,在我接下来的学习整理的文档中,这两种语言都会用到吧。跟我一起学习这个部分的内容的话,假设你已经掌握了C/C++的基础语法知识。1、静态库和动态库的区别函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标...原创 2019-03-31 20:28:09 · 282 阅读 · 0 评论 -
CentOS 7 :虚拟机网络环境配置+ 安装gcc(新手进)
centos网络环境设置及yum安装gcc编译环境原创 2024-05-08 15:59:04 · 2053 阅读 · 0 评论 -
Linux和windows进程同步与线程同步那些事儿(五):Linux下进程同步
linux进程同步讲解原创 2024-01-10 15:45:25 · 1243 阅读 · 0 评论 -
Linux和windows进程同步与线程同步那些事儿(三): Linux线程同步详解示例
Linux线程同步原创 2024-01-10 09:34:16 · 1225 阅读 · 0 评论 -
Linux和windows进程同步与线程同步那些事儿(一)
windows与linux进程同步及线程同步方法归纳原创 2024-01-05 15:48:21 · 1407 阅读 · 0 评论 -
Linux多线程编程:线程同步/死锁和预防/线程池
如下几篇讲的还不错,可以看做一个系列,就不过多总结了:C语言多线程编程-死锁和线程同步方式介绍(一)多线程编程-线程同步方式介绍(二)多线程编程-互斥锁/条件变量/关卡的使用实例多线程编程-线程池技术...原创 2021-07-23 10:44:22 · 137 阅读 · 0 评论 -
linux下多线程:经典生产者和消费者示例
/* 生产者和消费者典型案例 */#include <stdio.h>#include <pthread.h>#include <time.h>#include <semaphore.h>int queue[5];//sem_p 代表可生产的资源数//sem_c 可消费的资源数sem_t sem_p,sem_c;//用于生产者,生产出来,添加到队列中void *pro(void *arg){ int p=0; .原创 2021-07-23 01:58:12 · 355 阅读 · 0 评论 -
linux 下进程间通讯:信号
信号是软中断,即软件实现的中断机制。Linux下系统定义的信号包括如下: 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG17) SIGSTOP 18) SIGTSTP 19) SIGCO原创 2021-07-23 01:41:35 · 497 阅读 · 1 评论 -
linux 下进程间通讯: 管道
管道有两种类型,命名管道和无名管道。无名管道是一个单工的,应用于具有亲缘关系的进程间通讯.有名管道只是一个文件,文件内容为空,只是起到一个接口的作用.实现进程间的通讯,这样的进程不必是亲缘关系.一、无名管道pipe(2) 创建无名管道#include <unistd.h>int pipe(int pipefd[2]);功能:创建无名管道参数:pipefd:数组的名字,有两个元素,每个都是整形元素.用来返回管道的两端.pipefd[0] 指向了管道的读端 ...原创 2021-07-23 00:46:01 · 185 阅读 · 0 评论 -
linux 下进程间通讯: 共享内存
共享内存作为linux下进程间通讯的一种方式,比起共享文件,效率要高出很多。 鉴于《Linux中国》共享内存已经介绍的比较完善了,这里只做稍微的修改和描述。本文将作为转载处理。 对于共享内存,Linux 系统提供了两类不同的 API:传统的 System V API 和更新一点的 POSIX API。在单个应用中,这些 API 不能混用。但是,POSIX 方式的一个坏处是它的特性仍在发展中,并且依赖于安装的内核版本,这非常影响代码的可移植性。例如,默认情况下,POSIX A...转载 2021-07-22 17:58:31 · 335 阅读 · 0 评论 -
linux 下进程间通讯: 共享文件
共享文件算是比较传统的进程间数据交换的一种方式,但是由于涉及到不同进程间反复文件I/O,难免显得有些效率低下。共享文件的本质,实际是就是某个进程向共享为念写入数据,一个或多个进程从文件中读取数据,有可能涉及到进程之间资源竞争的问题,这里就涉及到了使用文件锁。部分代码源于《Linux中国》一、生产者代码示例/******************************* ** 生产者 *****************************/#include <...原创 2021-07-22 17:02:08 · 850 阅读 · 1 评论 -
linux 下进程间通讯: 消息队列篇
消息队列是linux下进程间通讯的常用方式之一,区别于共享内存,消息队列使用更加简单。但是,简单就没有坑么?在这里,想跟大家一起探讨下解锁消息队列的正确姿势,翠花,趴好~一、什么是消息队列 生产者先将消息投递一个叫做「队列」的容器中,然后再从这个容器中取出消息,最后再转发给消费者二、消息队列的操作1、创建消息队列或获取已存在消息队列的id#include <sys/types.h>#include <sys/ipc.h>#include...原创 2021-07-22 14:26:19 · 569 阅读 · 1 评论 -
linux下库文件的制作和链接、动态加载流程
很长时间没有回过头总结下unix下c相关的知识了。重新捡起来好好品味一下。砸,真香。在学习库的制作之前,我们先简单写一个多文件的例子,编写一个.h 和.c的文件,如下所示:// mymath.h#ifndef MYMATH_H#define MYMATH_Hconst int myadd(int x,int y);#endif#include "mymath.h"const int myadd(int x,int y){ return x+y;}...原创 2021-07-19 23:39:39 · 431 阅读 · 0 评论