linux
z5z5z5z56
投奔自由
展开
-
解决No module named添加sys.path.append(‘../‘)仍存在的路径问题
bug原创 2023-06-02 12:28:15 · 1500 阅读 · 0 评论 -
配置ubuntu服务器/工作站的一些参考
配置ubuntu服务器/工作站的一些参考原创 2023-03-07 17:05:42 · 131 阅读 · 0 评论 -
虚拟环境安装包出现ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied:原创 2022-10-19 20:00:10 · 1279 阅读 · 0 评论 -
解决adb push时显示adb: error: failed to copy ‘……: remote No such file or directory
解决adb push时显示adb: error: failed to copy '……: remote No such file or directory原创 2022-07-22 17:02:14 · 6736 阅读 · 0 评论 -
SOCKET(二)I/O复用之epoll函数(epoll_create、epoll_ctl、epoll_wait)
文章目录IO复用概述epoll概述在学到I/O复用——《UNP1》第六章的时候,我们通常要学习:5种io模型:阻塞I/O非阻塞I/OI/O复用(select和poll)信号驱动I/O异步I/O3个主要函数:(selectors模块)select函数poll函数epoll系列函数考虑到epoll性能最高而目前服务器大部分使用该函数,本文仅介绍epoll系列函数。关于5种io模型和3个主要函数的解释与对比可见并发编程(IO多路复用)IO复用概述epoll概述epoll是原创 2020-08-16 17:40:42 · 652 阅读 · 0 评论 -
POSIX线程(三)linux下c++线程池代码示例
文章目录基础的线程池demomain.cppPthreadPool.hPthreadPool.cpp线程池理论部分可参考其他文章:linux线程池的实现——bobo基础的线程池demo本文仅放上一个基础的线程池demo:分为三个文件:main.cppPthreadPool.cppPthreadPool.h后两个文件写线程池相关应用接口main.cpp#include <iostream>#include <pthread.h>//pthread_create原创 2020-08-12 12:56:54 · 183 阅读 · 0 评论 -
POSIX线程(二)互斥量mutex、条件变量cond,联合使用代码和理解
文章目录互斥量mutex对互斥量的操作函数pthread_mutex_init对互斥量的初始化pthread_mutex_destroy销毁一个互斥锁pthread_mutex_lock加锁pthread_mutex_trylock尝试加锁pthread_mutex_unlock解锁代码示例条件变量cond条件变量是什么示例代码几个疑问为什么pthread_cond_wait需要加锁?互斥量mutex互斥量是实现多线程程序中的同步访问的一种手段,它实现线程访问资源的互斥互斥量是一个类对象,使用互斥量原创 2020-08-11 10:47:44 · 680 阅读 · 0 评论 -
No manual entry for pthread_mutex_init解决办法
命令行:man pthread_mutex_init提示:No manual entryfor pthread_mutex_init解决方案:命令:sudo apt-get install manpages-posix manpages-posix-dev转载 2020-08-09 15:22:16 · 691 阅读 · 0 评论 -
POSIX线程(一)linux线程概述、线程基础函数(pthread_create、exit、join)
文章目录线程概述实战注意事项线程系统函数pthread_createpthread_exitpthread_join代码实例线程概述栗子:有一家大工厂,有很多个厂房,每一个厂房都可以独立工作,多个厂房则效率更高。厂商根据市场需求调整要开几间厂房进行生产,如果需求不高,就保存一间厂房生产即可,需求高就多开几间。这里:一个厂房——一个进程一个厂房里面的一个工序——线程进程是操作系统中的一个基本单元,我们整个系统是由无数个进程组成线程是操作系统运行的最小单元,每一个进程如果不做处理,默认就有一个原创 2020-08-09 11:28:13 · 416 阅读 · 0 评论 -
linux socket 程序被ctrl+c或者异常终止,再次启动报bind err:: Address already in use解决办法
linux socket 程序被ctrl+c或者异常终止,再次起程序时提示该端口号已被绑定bind err:: Address already in use原因在服务端终止之后,会有一个TIME_WAIT的状态,持续2-4分钟,再次打开会出现绑定bind失败解决方法在bind函数前增加以下代码: int mw_optval = 1; setsockopt(server_sockfd, SOL_SOCKET, SO_REUSEADDR, (char *)&mw_optval,sizeof(原创 2020-08-06 10:54:29 · 1456 阅读 · 0 评论 -
SOCKET(一)基本TCP套接字编程(socket,bind,listen,accept,connect函数)
文章目录概述socket函数bind函数(服务端)字节转换函数地址格式转换函数listen函数(服务端)accept函数(服务端)connect函数(客户端)write函数read函数close函数getsockname和getpeername函数代码实例服务端代码客户端代码概述TCP套接字的编程流程/函数框架:TCP套接字程序编写流程:创建套接字——socket将套接字与地址和端口捆绑socket函数#include <sys/socket.h>int socket(i原创 2020-08-05 21:42:39 · 1889 阅读 · 3 评论 -
IPC之共享内存(shmget函数、shmat函数、shmdt函数)及其代码示例——linux系统编程
文章目录共享内存介绍shmget:创建共享内存shmat:将创建好的共享内存连接到某个进程,并指定内存空间shmdt:脱钩函数,把共享内存与当前进程脱离开代码实例共享内存介绍共享内存是IPC中效率最高的一个,它是原理是linux内核在内存中开辟一个空间,给进程进行读写。每个进程都会通过API函数,把这块linux内核中的内存映射到自己的进程空间里面来,是映射的,虚拟的,不是实际在进程内存中。通过这种方法来达到进程间共享数据目的• 共享内存使用的函数与信号量的很相似,涉及到的函数如下void *s原创 2020-08-01 22:36:44 · 2361 阅读 · 1 评论 -
IPC之消息队列(msget函数、msgsnd函数、msgrcv函数)及其代码示例——linux系统编程
文章目录消息队列介绍msgget:创建和访问一个消息队列msgsnd:发送信息,把一条消息添加到消息队列里去msgrcv:从一个消息队列里检索(接收)消息代码实例消息队列介绍消息队列:IPC之一内核开辟的一个队列,进程可以通过调用系统API方式调用消息队列函数,给内核消息队列发送或者接收数据涉及函数:包含头文件:<sys/msg.h><sys/types.h>和<sys/ipc.h>int msgctl(int msqid, int cmd, struct m原创 2020-08-01 22:19:03 · 4915 阅读 · 2 评论 -
管道(三)——有名管道FIFO、mkfifo函数——linux系统编程
文章目录引入命名管道FIFO、创建mkfifoFIFO读写规则引入pipe最大的劣势就是只能用于有共同祖先的各个进程之间,无法在没有亲缘关系的两个进程间创建一个管道并将它用作IPC通道。FIFO解决了这一点,它通过文件系统中的路径名作为名字来指定访问的进程。命名管道FIFO、创建mkfifo匿名管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用FIFO文件来做这项工作,它经常被称为命名管道。FIFO文件在磁盘上没有数据块,仅用来标原创 2020-07-31 15:56:32 · 2857 阅读 · 1 评论 -
管道(二)——管道读写规则、管道容量Pipe Capacity、原子性PIPE_BUF——linux系统编程
文章目录4种情况下的管道读写规则当没有数据可读(若父进程不写而子进程读)当管道满(若父进程写而子进程不读)管道容量Pipe Capacity若(父进程)写端突然关闭若(子进程)读端突然关闭linux写入原子性问题本人的《APUE》《UNPv12》到啦!希望博文质量能有所提高!4种情况下的管道读写规则我们用代码简单试验在一般情况下(O_NONBLOCK disable,默认阻塞)的4种情况:1.当没有数据可读2.当管道满的时候3.所有管道读端对应的文件描述符被关闭4.写端对应的文件描述符被关闭原创 2020-07-31 14:53:53 · 1485 阅读 · 0 评论 -
管道(一)——匿名管道、pipe函数——linux系统编程
文章目录进程间通讯IPC什么是管道、管道的特点管道的创建——pipe函数代码实验基础功能若父进程==不写==而子进程读若父进程写而子进程==不读==若父进程==写端突然关闭==?若子进程==读端突然关闭==?管道的阻塞问题总结进程间通讯IPC上一讲我们说到信号,进程间的整型数据可以通过信号进行传递,但是其他信号(例如结构体)信号就不够用了。而在进程中我们学到每个进程都有各自独立的地址空间,进程互相不能访问,所以进程间若想进行数据交换,就必须通过内核。在内核中开辟一块缓冲区,用于传递信号的写入和读出,这种原创 2020-07-29 11:19:06 · 321 阅读 · 0 评论 -
信号(三)——阻塞(信号屏蔽)与未决、sigset_t信号集、sigprocmask 和 sigpending 函数——linux系统编程
文章目录信号在内核中的表示:递达(Delivery)、未决(Pending)、阻塞(Block)sigset_t未决信号集sigprocmask函数sigpending函数信号在内核中的表示:递达(Delivery)、未决(Pending)、阻塞(Block)递达(Delivery):执行信号的动作sigset_t未决信号集sigprocmask函数sigpending函数...原创 2020-07-26 23:36:59 · 1381 阅读 · 0 评论 -
信号(二)——进程间数据传递sigaction函数(sigaction结构体、siginfo_t 结构体)、sigqueue函数(sigval联合体)、信号的顺序响应问题——linux系统编程
文章目录sigaction信号安装函数sigaction 结构体siginfo_t 结构体sigqueue信号发送函数sigval联合体代码示例上一篇讲到信号值位于SIGRTMIN和SIGRTMAX之间的信号都是可靠信号,可靠信号克服了信号可能丢失的问题。Linux在支持新版本的信号安装函数sigation()以及信号发送函数sigqueue()的同时,仍然支持早期的signal()信号安装函数,支持信号发送函数kill()。kill+signal与sigqueue+sigaction的主要差别体现原创 2020-07-26 15:58:13 · 5120 阅读 · 1 评论 -
信号(一)——简介、kill、signal、可/不可靠信号、实时/非实时信号——linux系统编程
文章目录linux的信号简介传统信号收发对:kill+signalkill——信号的软件产生signal——安装信号接收可带值的信号收发对:sigqueue+sigactionsigqueuesigactionlinux的信号简介传统信号收发对:kill+signalkill——信号的软件产生signal——安装信号接收可带值的信号收发对:sigqueue+sigactionsigqueuesigaction...原创 2020-07-26 10:07:25 · 953 阅读 · 0 评论 -
进程——fork函数用法、特性及代码实例——linux系统编程
文章目录fork函数概述查看进程情况——getpid函数并发执行特性数据内存与地址空间问题创建多个子进程问题进程结束和退出问题fork函数概述首先来看官方man:NAME fork - create a child processSYNOPSIS #include <unistd.h> pid_t fork(void);DESCRIPTION fork() creates a new process by duplicating the原创 2020-07-22 11:41:26 · 391 阅读 · 1 评论 -
linux两种开发环境的搭建与代码实例(ubuntu内code::blocks与Windows内vs2013+visualGDB)以文件io为例
本文主要对两种linux开发环境的搭建和使用进行简要记录,以打开和读并输出一个文件的内容为代码示例。目的是对linux开发环境和文件io有一个基础认识文章目录法一:ubuntu内code::blocks开发环境搭建步骤项目开发基础操作法二:Windows内vs+visualGDB开发环境搭建步骤项目开发基础操作法一:ubuntu内code::blocks开发笔者版本为ubuntu16.04+code::blocks13.12环境搭建步骤open Terminal 输入sudo su,然后输入密原创 2020-07-18 00:38:53 · 355 阅读 · 0 评论