![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux开发
游学四方
这个作者很懒,什么都没留下…
展开
-
libcurl上传文件
1.libcurl功能简介https://curl.se/libcurl/具体使用方法可以看这里的简介:https://www.cnblogs.com/heluan/p/10177475.html2.上传文件到ftp上具体见代码:#include <string>namespace BaseFun{ struct UploadFileSession { static bool UploadFile(std::string& response, const std:原创 2021-07-21 16:02:52 · 2438 阅读 · 0 评论 -
gRPC压测工具ghz
本文主要介绍了 gRPC 压测工具 ghz ,包括 ghz 的安装、使用及压测计划制定等。gRPC 系列相关代码见 Github安装可以直接在Release页面下载二进制文件,也可以 clone 仓库手动编译。下载解压后即可使用# 下载$ wget https://github.91chifun.workers.dev/https://github.com//bojand/ghz/releases/download/v0.94.0/ghz-linux-x86_64.tar.gzghz-lin原创 2021-06-20 16:40:17 · 1787 阅读 · 0 评论 -
Centos升级gcc至5.4.0
下载、解压源码包(可从官方镜像地址https://gcc.gnu.org/mirrors.html选择适合自己的下载地址与gcc版本)我选择的是距离杭州最近的节点,下载速度相对快点wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.gztar xvf gcc-5.4.0.tar.gzcd gcc-5.4.0ps: gcc与g++的命令目录在/usr/local/bin下载依赖..原创 2021-06-20 16:37:33 · 288 阅读 · 0 评论 -
boost::filesystem使用方法,根据路径创建文件夹
filesystem库提供了两个头文件,一个是<boost/filesystem.hpp>,这个头文件包括基本的库内容。它提供了对文件系统的重要操作。 同一时候它定义了一个类path。正如大家所想的。这个是一个可移植的路径表示方法,它是filesystem库的基础。 一个是<boost/filesystem/fstream.hpp>。是对std::fstream的一...转载 2019-12-19 11:40:23 · 6045 阅读 · 0 评论 -
linux下判断网络是否连接
本文改写自网上的一个程序,原始程序中为阻塞式调用,而且有进程创建的过程,非常不利于集成到自己程序中,因此对原始程序进行改造,使其可以完成发送一个imcp包的方式来判断网络连通,只需要调用改进后的 bool NetIsOK()函数即可,该函数返回true即表示网络状态良好,否则表示网络状态不连同,本程序中只发送了一个icmp包,在实际应用中可以根据需要改进为发送多个imcp包。修改之后的...原创 2018-09-02 16:40:46 · 3563 阅读 · 0 评论 -
linux下的常用时间函数总结
1、Unix系统一直使用两种不同的时间值:“日历时间”和“进程时间”1.1、日历时间,日历时间是从国际标准时间公元1970年1月1日00:00:00到现在所经历的秒数;此时间精度为秒。 系统用time_t保存这种时间值,如果时间要求不是非常精确则可以使用此时间,例如记录文件修改的时间。 这里的time_t是个长整型数值,可以用函数:time_t time(time_t* calp...原创 2018-09-02 16:51:01 · 555 阅读 · 0 评论 -
一文让你熟练掌握Linux的ncat(nc)命令
一文让你熟练掌握Linux的ncat(nc)命令ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。ncat/nc 既是一个端口扫描工具,也是一款安全工具,还是一款监测工具,甚...原创 2018-12-17 11:21:39 · 602 阅读 · 0 评论 -
vector转数组
bool UpdateCancelShelterID(int* pShelterID, int nCount);vector<int> m_privateIDVec;if (!m_privateIDVec.empty()){ int *privacyIdArray = new int[m_privateIDVec.size()*sizeof(int)]; memcpy...原创 2019-03-16 16:52:24 · 533 阅读 · 0 评论 -
内存数据写到本地
DWORD dwPictureLen; //图片大小 char* pPicBuffer; //图片数据, string file_path = "D:\\12.jpg";std::ofstream out_file(file_path.c_str(), ios::out | ios::binary | ios::trunc);...原创 2019-03-22 10:00:47 · 218 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问...转载 2018-06-10 20:27:54 · 165 阅读 · 0 评论 -
回调函数设计方法
原文链接:点击打开链接引入: 你显示器不亮了,你不知道怎么弄,那你就问在外地干IT的大表哥,你大表哥告诉你修理的方法,然后需要你自己来操作。 你大表哥知道怎么弄,但是自己不去弄,而是由你去弄。换句话说,你大表哥实现了修理你显示器的方法,但他不会自己去调用,而是由你去调用。那么你大表哥告诉你的修机器的方法就是回调函数。 在这个比喻里,你自己 作为主调方,有实际的需求——修显示器,...转载 2018-03-23 15:20:51 · 583 阅读 · 0 评论 -
Linux服务器开发---简单日志系统实现
本文重点在Linux操作系统上实现日志系统,用于记录部分业务或者重要参数便于以后追查问题。logging.h#pragma once#include <string.h>#include "timestamp.h"#include "logstream.h"class Logger{public: enum LogLevel { TRACE, DEBUG...原创 2018-03-06 16:00:54 · 617 阅读 · 0 评论 -
C++中 vector、list、deque、set、map的底层实现
stl容器区别: vector list deque set map-底层实现stl容器区别: vector list deque set map (转)在STL中基本容器有: vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使转载 2018-01-25 13:55:37 · 389 阅读 · 0 评论 -
Linux开发部分代码练习
1.pipe 通信#include#include#define BUF_SIZE 100 int main(int argc, char *argv[]) { int fds[2]; int fds2[2]; char str[] = "who are you?"; char str2[] = "Thank you from your message";原创 2018-01-19 15:45:31 · 272 阅读 · 0 评论 -
5种服务器网络编程模型讲解
http://www.cricode.com/3510.html1.同步阻塞迭代模型同步阻塞迭代模型是最简单的一种IO模型。其核心代码如下:bind(srvfd);listen(srvfd);for(;;){ clifd = accept(srvfd,...); //开始接受客户端来的连接 read(clifd,buf,...);转载 2018-01-29 15:24:11 · 238 阅读 · 0 评论 -
进程学习:3-进程组、会话、守护进程
进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp() eg:显示子进程与父进程的进程组id1 #include 2 #include 3 #include 4 5 int main() { 6 pid_t pid; 7 8 if ((pid=fork())0原创 2018-02-06 14:18:54 · 161 阅读 · 0 评论 -
进程学习:进程间通信(system v IPC)1.消息队列
消息队列与管道的异同点:消息队列与管道的相同点:1.都是利用内核的1G空间来通信(如图);消息队列与管道的不同点:1.管道的数据读取是严格按照先进先出;2.消息队列的数据读取可以按照数据类型进行读取;消息队列函数一、int msgget(key_t key, int msgf原创 2018-02-06 16:12:01 · 168 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步、I/O模型
转自:http://blog.csdn.net/hguisu/article/details/74533901. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之转载 2018-02-07 17:06:33 · 254 阅读 · 0 评论 -
bad interpreter:No such file or directory的原因
今天在编译完Fortran的一个程序之后,却用原来的调用脚本怎么也没法执行,问题如标题,最好找到这篇文章,恍然大悟。 Linux下面一个脚本死活也运行不了, 我检查了数遍,不可能有错。快Insane啦!提示:bad interpreter:No such file or directory! 上网上找了好久,总算发现原来是文件格式的问题。这个文件是我在Windows下编...转载 2018-02-28 08:51:26 · 21833 阅读 · 0 评论 -
linux内核调优参考
linux内核调优参考对于新部署的机器,需要做一些基本的调优操作,以更改一些默认配置带来的性能问题1 修改打开文件数 root@mysql:/data/tools/db# vim /etc/security/limits.conf * soft nofile 65535* soft nproc 655...转载 2018-03-01 09:55:57 · 191 阅读 · 0 评论 -
[C++][线程池][完整实现] 转:线程池原理及创建(C++实现)
其实看了好多类似的,都是没有完整的实现,自己花了点时间把这个程序梳理了一下,写了个测试程序,目前可以跑通。出去面试的时候,被鄙视了一番,感觉还是自己能力不行。#include <stdio.h>#include <stdlib.h>#include <vector>#include <algorithm>#include <assert...转载 2018-03-22 14:03:05 · 428 阅读 · 0 评论 -
Linux makefile 通用模板总结
CC=gccCXX=g++CFLAGS=-IincludeCXXFLAGS=-IincludeLDFLAGS=-lpthread -lrt -lmSRCDIRS=srcOBJPATH=CFILES=$(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))CPPFILES=$(foreach dir, $(S原创 2018-01-25 09:30:06 · 409 阅读 · 0 评论