Linux
文章平均质量分 68
Linux
LEO-max
GPT农名工
展开
-
从传统网络IO 到 IO多路复用
摘取自码农翻身 阻塞 IO 服务端为了处理客户端的连接和请求的数据,写了如下代码。listenfd = socket(); // 打开一个网络通信端口bind(listenfd); // 绑定listen(listenfd); // 监听while(1) { connfd = accept(listenfd); // 阻塞建立连接 int n = read(转载 2021-07-26 11:42:27 · 236 阅读 · 0 评论 -
Makefile文件编写快速掌握
本文有参考https://blog.csdn.net/wh_computers/article/details/97623394此篇博客。目录一、make及其用法二、Makefile文件编写规则Makefile的语法扩展通配符%clean操作+假想目标.PHONY即使变量、延迟变量、export 本问旨在从零学习Makefile编写。 &n原创 2021-04-22 02:03:39 · 834 阅读 · 0 评论 -
gcc和arm-linux-gcc的常用选项
gcc的使用方法:gcc [选型] 文件名gcc常用选项:gcc -v:查看gcc编译器的版本,显示gcc执行时的详细过程gcc -o file:指定输出文件名file,这个名称不能与源文件名同名gcc -E:只预处理、不会编译、汇编、链接gcc -S :只编译、不会汇编、链接gcc -c:编译和汇编、不会链接...转载 2021-04-16 10:12:56 · 807 阅读 · 0 评论 -
消息队列
本例在建立消息队列后,打印其属性,并在每次发送和接收后均查看其属性,最后对消息队列进行修改。1.显示消息属性的函数msg_show_attr() msg_show_attr()函数根据用户输入的消息ID,将消息队列中的字节数、消息数、最大字节数、最后发送消息的进程、最后接收消息的进程、最后发送消息的时间、最后接收消息原创 2021-04-15 21:16:58 · 424 阅读 · 0 评论 -
Linux进阶命令
目录findgrepfilewhich和whereis压缩gzip的常用选项bzip2的常用选项tar常用选项1.tar打包、gzip压缩2.tar打包、bzip2压缩find目的:查找符合条件的文件1)在哪些目录中查找2)查找的内容格式: find 目录名 选项 查找条件举例:1)find /work/001_linux_basic/dira/ -name “test1.txt”说明:a)/work/001_linux_basic/dira/指明了查找的路径b)-原创 2021-03-21 23:54:51 · 245 阅读 · 0 评论 -
关于树莓派安装Python所需模块出现“E: 无法定位软件包”的问题归纳
一、镜像源问题在 /etc/apt/sources.list 添加新镜像源 一般选择清华源在网上查找清华源的教程的时候,注意是Ubuntu的还是raspbian的。二、sudo apt-get install python-xxx下载Python有关的模块的指令,需要加上 python-比如:安装 pandas 模块linux 下 : sudo apt-get install python-pandas安装 numpy 模块linux 下 : sudo apt-get ins原创 2021-02-23 16:54:16 · 7399 阅读 · 1 评论 -
树莓派通过scp将文件传到Linux主机的问题
在树莓派上通过scp指令将文件传到Ubuntu上报错:ssh: connect to host 192.168.4.119 port 22: Connection refusedlost connection1.先尝试是否能Ping通。2.如果Ubuntu上可以通过scp将文件传到树莓派上说明树莓派的SSH配置没有问题,是Ubuntu的SSH配置问题: 可能是Ubuntu没有开启SSH。开启方法:sudo apt-get install openssh-server通过 sudo ps -原创 2021-02-21 11:27:51 · 372 阅读 · 1 评论 -
树莓派和电脑之间串口通信编程
串口配置的一些详细内容可以参考其他博文,这里不作介绍。树莓派与电脑进行通信树莓派向电脑端发送数据#include <wiringSerial.h>#include <wiringPi.h>#include <stdio.h>#include <stdlib.h> int main(){ int fd; if(wiringPiSetup()原创 2021-02-19 18:34:18 · 598 阅读 · 0 评论 -
树莓派控制继电器实现点灯功能
今天来玩一下简单的树莓派外设开发,通过wiringPi库来控制继电器进而控制灯的点亮与关闭。 树莓派电灯 wiringPI库的相关介绍可以看此博客:https://www.cnblogs.com/lulipro/p/5992172.html代码如下:#include <wiringPi>#include <stdio.h>#define SWITCHER原创 2021-02-14 21:52:17 · 1017 阅读 · 0 评论 -
Linux库的分文件编程
今天是除夕,贴了一上午的对联,吃完午饭就稍微学习一下,晚上就是Happy之夜了除夕过后,你将涅槃重生,逆风翻盘,这一句,是必胜局!屁话太多,进入正题:分文件编程好处: 可以将不同的功能模块交给不同的人做。网络线程电机超声波···好处:功能责任划分方便调试主程序简洁例:一个含有自定义函数和主函数的代码#include <stdio.h>int add(int原创 2021-02-11 13:55:56 · 284 阅读 · 1 评论 -
Linux文件服务站(C语言)
服务端代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h原创 2021-02-05 02:12:43 · 595 阅读 · 0 评论 -
套接字编程的基础知识
坚持每天学习,坚持写博客。二月份加油目录套接字地址结构通用套接字数据结构实际使用的套接字数据结构结构sockaddr和结构sockaddr_in的关系用户层和内核层交换过程向内核传入数据的交互过程内核传出数据的交互过程套接字地址结构 套接字编程需要指定套接字的地址作为参数,不同的协议族有不同的地址结构定义方式。这些地址结构通常以sockaddr_开头,每一个协议族有一个唯一的后缀,例如对于以太网,其结构名称原创 2021-02-01 01:02:16 · 433 阅读 · 0 评论 -
Linux下的线程
多线程编程实例 Linux系统下的多线程遵循POSIX标准,叫作pthread,可以使用man pthread在Linux系统下查看系统对线程的解释。编写Linux下的线程需要包含头文件pthread.h,在生成可执行文件的时候需要链接库libpthread.a或者libpthread.so。 下面给出一个简单的多线程原创 2021-01-29 00:20:01 · 355 阅读 · 0 评论 -
进程间通信和同步
目录半双工管道基本概念pipe()函数介绍pipe()函数的例子管道阻塞和管道操作的原子性管道操作原子性的代码命名管道创建FIFOFIFO操作消息队列消息缓冲区结构结构msgid_ds结构ipc_perm内核中的消息队列关系键值构建ftok()函数获得消息msgget()函数发送消息msgsnd()函数接收消息msgrcv()函数消息控制msgctl()函数消息队列的一个例子显示消息属性的函数msg_show_attr()信号量信号量数据结构新建信号量函数semget()信号量操作函数semop()控制信号原创 2021-01-28 02:05:37 · 757 阅读 · 0 评论 -
Linux线程编程记录
目录1.线程2.进程与线程的区别进程与线程为什么要用线程3.线程的创建及等待语法相关API4.创建一个线程5.线程等待6.线程共享内存代码验证7.线程同步之互斥量上锁与解锁相关API上锁与解锁8.死锁情况9.线程条件实现线程的同步1.线程 一个进程包含一个或多个执行线程(通常只叫线程),线程是进程中的活动单位。线程是一种抽象,它负责执行代码和维护进程的运行状态。原创 2021-01-26 14:18:01 · 294 阅读 · 0 评论 -
Linux(CentOS)重要的目录结构
bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。dev:该目录中主要存放的是外接设备,例如盘、其他的光盘等。其中的外接设备是不能直接被使用的,需要挂载(类似于windows下的分配盘符)。etc:该目录主要存储一些配置文件。home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。proc:process,表示进程,该目录中存储的是Linux运行时候的进程。root:该目录是root用原创 2021-01-26 01:51:58 · 292 阅读 · 0 评论 -
Linux系统进程间通信编程
目录1.进程间通信概述Linux使用的进程间通信方式1)管道( pipe )2)信号量( semophore )3)消息队列( message queue )4)信号 ( singal )5)共享内存( shared memory )6)套接字( socket )2.管道通信原理1)匿名(无名)管道特点管道编程实战2)命名(有名)管道FIFO1.特点2.原型3)命名管道的数据通信编程实现3.消息队列的通信原理4.消息队列编程收发数据5.共享内存概述6.共享内存编程实现7.信号概述8.信号编程9.信号携带消息原创 2021-01-25 16:17:00 · 400 阅读 · 0 评论 -
Linux进程编程
目录1.进程相关概念创建进程函数fork的使用1.进程相关概念1.什么是程序,什么是进程,有什么区别程序是静态的概念,gcc xxx.c -o pro,磁盘中生成的pro文件叫程序进程是程序的一次的活动,只要程序跑,系统中就多了一个进程2.如何查看进程ps 或ps -aux|grep 要查找的进程grep用来过滤例:ps -aux|grep init使用top指令查看,类似windows任务管理器3.什么是进程标识符每个进程都有一个非负整数表示唯一ID,叫做pid,有点原创 2021-01-24 00:21:43 · 334 阅读 · 0 评论 -
Linux系统C语言文件编程
目录1.文件打开及创建2.文件写入操作编程3.文件读取操作4.文件光标移动操作5.计算文件大小6.文件打开创建的补充7.创建文件create函数8.文件操作原理概述9.文件操作CP指令1.文件打开及创建#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h>int main(){ int fd; fd = open("./file1",O原创 2021-01-22 14:42:37 · 706 阅读 · 2 评论 -
Linux系统中利用ncurses实现贪吃蛇小项目
附上代码:#include <curses.h> //ncurses库#include <stdlib.h> #include <pthread.h> //线程库#include <unistd.h> #define UP 1#define DOWN -1#define LEFT 2#define RIGHT -2typedef struct snakes{ int row; //行 i原创 2021-01-20 15:49:45 · 276 阅读 · 0 评论 -
Linux线程概念引入及编程实现
#include <stdio.h>void func1(){ while(1){ printf("This is func1\n"); sleep(1); }}void func2(){ while(1){ printf("This is func2\n"); sleep(1); }}int main(){ func1(); func2(); return 0;}上面的代码我们可以知道两个函数里面都设置了while(1)死循环,所原创 2021-01-19 15:36:56 · 225 阅读 · 0 评论