LINUX相关(系统和网络)
文章平均质量分 86
LINNUX
Devin_white
我确实很懒
展开
-
C++11创建线程/多线程
这里只讨论在C++11中创建线程的写法.线程的创建有多种方式,c++11中,创建一个线程是通过一个定义一个thread对象进行的,thread类的使用如下:由于实现(内部的实现这里不在探讨),std::thread()创建一个新的线程可以接受任意的可调用对象类型(带参数或者不带参数),包括lambda表达式(带变量捕获或者不带),函数,函数对象,以及函数指针。下面简单的探讨一下。在启动了一个线程(创建了一...原创 2022-06-10 10:04:05 · 6517 阅读 · 0 评论 -
彻底弄懂 Linux 下的文件描述符(fd)
文章目录1、从一个最常见的例子说起2、Linux中的文件描述符(file descriptor)3、Linux上打开文件举例4、C语言中文件描述符的使用5、Linux配置系统最大打开文件描述符个数6 、参考链接1、从一个最常见的例子说起在使用Linux的过程中, 我们平时经常看到下面这样的用法:echo log > /dev/null 2>&1> :表示将输出结果重定向到哪里,例如:echo "123" > /home/123.txt/dev/null :表示转载 2022-03-02 10:02:14 · 4751 阅读 · 0 评论 -
linux下静态库和动态库的创建和使用
1 关于静态库和动态库1.1 静态库(.a)之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。静态库试想一下,静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库必定跟.o文件格式相似。其实一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件。静态库特点总结:静态库对函数库的链接是放在编译时期完成的。程序在运行时与函数库再无瓜葛,移植方便。原创 2022-01-18 17:21:20 · 1217 阅读 · 0 评论 -
LINUX下C/C++操作MySql
参考自:https://blog.csdn.net/fengxinlinux/article/details/75675360一 安装1)首先是再服务上安装mysql服务端和客户端,之前有相关记录2)再次就是安装相关的C库:sudo apt-get install libmysqlclient-dev3) 在数据库中创建所使用到的数据库和表,必要时创建所需要的用户这可以在mysql_client中操作:https://blog.csdn.net/luseysd/article/details原创 2021-11-21 21:51:26 · 1303 阅读 · 1 评论 -
多线程中的EPOLLONESHOT
epoll中EPOLLSHOT的使用EPOLLSHOT的作用主要用于多线程中epoll在某次循环中唤醒一个事件,并用某个工作进程去处理该fd,此后如果不注册EPOLLSHOT,在该fd时间如果工作线程处理的不及时,主线程仍会唤醒这个时间,并另派线程池中另一个线程也来处理这个fd。为了避免这种情况,需要在注册时间时加上EPOLLSHOT标志,EPOLLSHOT相当于说,某次循环中epoll_wait唤醒该事件fd后,就会从注册中删除该fd,也就是说以后不会epollfd的表格中将不会再有这个fd,也就不转载 2021-11-21 16:18:12 · 3689 阅读 · 0 评论 -
LINUX高性能服务器编程
一 用进程池实现CGI服务器这个服务器实现的任务是,将客户端传送过来的信息打印出来1 方式一 ,没有使用类封装#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#in原创 2021-11-09 09:34:12 · 1879 阅读 · 0 评论 -
EPOLL模型详解
参考自: http://blog.chinaunix.net/uid/28541347/cid-191916-list-4.html一 epoll综述1 selected 缺陷首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在我用的2.6.15-25-386内核中,该值是1024,搜索内核源代码得到:include/linux/posix_types.h:#define __FD_SETSIZE原创 2021-10-28 15:44:43 · 1427 阅读 · 0 评论 -
关于EPOLL的LT与ET模式以及阻塞和非阻塞
在EPOLLLT(水平触发)模式下,也就是默认的模式,epoll_wait返回可读事件,表明socket一定收到了数据,我们可以调用read函数来读取数据。如果指定读取的数据大于缓冲区数据,无论socket是阻塞还是非阻塞的,read不会阻塞,read返回读取的真实数据。在read之后再次调用read,如果socket是阻塞的,read将阻塞,再次收到数据read才返回。此时如果指定读取的数据大于缓冲区,epoll_wait则不再触发,否则epoll_wait将再次触发,因为还有未读完的数据在缓冲区。在E原创 2021-10-28 15:43:52 · 4981 阅读 · 1 评论 -
LINUX C中的输入和输出使用方法!(结合在socket中的应用)
fgetsgetline等终端用什么普通文件用什么snprintf使用怎么这么广泛,为什么不用其他标准IO与文件IO,什么时候使用原创 2021-10-23 10:38:19 · 500 阅读 · 0 评论 -
深入探讨read write在普通文件和特殊文件中的使用
fputsreadwrite一般只用于文件上的适合在终端使用 的适合在设备、网络、管道等上使用的原创 2021-10-19 10:22:34 · 495 阅读 · 0 评论 -
linux文件属性与权限
linux文件属性权限1 文件属性查看方法解释补充2 改变文件属性与权限改变文件所属群组chgrp改变文件拥有者, chown改变权限, chmod3 目录与文件之权限意义4 文件默认权限5 文件特殊权限SUID, SGID, SBITSUIDSGID1 文件属性查看方法(这里,属性和权限某种意义上是一样的。)ls -al 可以在终端查看文件的属性。!需要注意的是,linux提供的stat命令及函数,也可以查看文件的属性,两者的内容是差不多的,只是略微有差异。解释第一栏第一个字符代表原创 2021-09-03 17:45:01 · 192 阅读 · 0 评论 -
linux下文件带缓冲与不带缓冲的理解
带缓冲与不带缓冲的区别和联系缓不缓冲的一些概念与磁盘交互读写文件的流程不带缓冲与带缓冲的实现机制带缓冲与不带的差别标准IO库以write函数(系统调用)和fwrite函数(c库函数)为例缓冲技术的作用和价值缓不缓冲的一些概念首先要明白不带缓冲的概念:所谓不带缓冲,并不是指内核不提供缓冲,而是只单纯的系统调用,不是函数库的调用。系统内核对磁盘的读写都会提供一个块缓冲(在有些地方也被称为内核高速缓存),当用write函数对其写数据时,直接调用系统调用,将数据写入到块缓冲进行排队,当块缓冲达到一定的量时,原创 2021-04-08 13:38:45 · 1365 阅读 · 0 评论