Linux C/C++后台开发

Talk is cheap. Show me the code!

排序:
默认
按更新时间
按访问量

用strace查找进程卡死原因

最近遇到进程卡死的情况,但是自己调试的过程中并不一定能复现,都是需要运行一段时间某些条件下才会触发,对于这种运行着不能破坏现场的情况,我们可以使用gdb -p和strace -p来跟踪。 首先我们用ps auxf查看我们的进程执行到了哪一步: 可以看到执行到了docker exec -i ...

2018-01-15 14:59:03

阅读数:3445

评论数:0

epoll的ET和LT模式下,accept,recv,send写法

epoll有两种事件模型: Level Triggered (LT) 水平触发 socket接收缓冲区不为空,有数据可读,读事件一直触发 socket发送缓冲区不满,可以继续写入数据,写事件一直触发 Edge Triggered (ET) 边缘触发 socket的接收缓冲区状态变化时触发...

2017-09-22 19:49:45

阅读数:677

评论数:0

docker registry带ssl认证的私有仓库搭建

1.首先docker pull registry默认下载最新版的镜像,我这边是2.6.2版本 2.这边考虑私有仓库部署的服务器可能没有网络,可以使用docker save -o registry.tar registry:2.6.2保存一个镜像,然后把registry.tar打包到部署包里面,下...

2017-08-11 19:42:41

阅读数:1646

评论数:0

从epoll源码分析它的使用

首先来看看epoll_create的真身SYSCALL_DEFINE1(epoll_create, int, size) { if (size <= 0) return -EINVAL; //也就是说参数size根本用不上 return sys_epo...

2017-04-06 15:17:40

阅读数:867

评论数:0

libevent多线程使用bufferevent的那些事

void do_accept(struct evconnlistener *listener, evutil_socket_t fd, struct sockaddr *sa, int socklen, void *ctx) { //不使用Nagle算法,选择立即发送数据而不是等待产生更多...

2016-11-09 17:42:20

阅读数:3770

评论数:4

MySQL C API预处理函数call存储过程

drop procedure if exists SelectAll; delimiter $ create procedure SelectAll(in TableName char(64)) begin set @sql = 'select * from ?'; prepare...

2016-10-09 14:34:11

阅读数:1219

评论数:0

curl常用功能

最简单的get访问(-X GET可选): curl www.test.com 使用用户名和密码: curl -u name:passwd http://www.test.com 查看详细访问过程: curl -v www.test.com post访问(因为-d就指定了post,...

2018-11-03 20:05:41

阅读数:25

评论数:0

map2str和str2map

举个例子: http://www.test.cn:8080/max/123.html?name=kevinchuang&pwd=123456#first 通常http链接部分都是固定,我们需要关心的是从“?”到“#”部分的数据部分。 比如现在我们要构造一个GET请求: ...

2018-11-03 18:55:06

阅读数:43

评论数:0

udp接收缓冲设置多大

先说一下保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。这个机制决定了udp的特性: 1. udp可以多线程对同一个fd进行发包操作,如果是tcp多线程发送,会让流乱序,接收端完全无法解析出来 2. udp接收端每次只能拿到一个包,tcp需要借助自定义...

2018-09-09 23:08:49

阅读数:201

评论数:0

避免不必要的内存拷贝和清0

对于网络编程中,一般都喜欢使用memset清0和memcpy拷贝操作,举个例子: char buffer[1024]; memset(buffer, 0, 1024); memcpy(buffer, proxy_hdr, IPC_HEADER_SZ); memcpy(buffer, trans_...

2018-09-09 21:50:57

阅读数:81

评论数:0

把函数返回值转为异常处理机制

我们这里要使用的是#include <stdexcept>,可以参考官方文档 先举一个例子,比如调用recv的函数返回值处理: int ret = recv(fd...); if (ret > 0){} if (ret == 0...

2018-09-04 13:00:17

阅读数:24

评论数:0

has been changed outside of Source Insight

在使用Source Insight写代码时,遇到它频繁弹窗提示代码在外部被更改 我们可以通过Options->Preferences->Files 就不会再提示了。 注意:这个解决方法,你要保证确实没有外部在修改你正在编辑的文件,频繁弹窗提...

2018-04-26 09:41:01

阅读数:156

评论数:0

MQTT协议通俗讲解

原文链接:https://blog.csdn.net/u011216417/article/details/69666752 参考 Reference 协议文档 Offical Docs v3.1.1 英文原版 中文翻译版 其他资源 网站 MQTT官方主...

2018-04-24 13:06:29

阅读数:98

评论数:0

ntpdate同步时间

先说下ntpdate的用法: usage: ntpdate [option] server 大概就是ntpdate 192.168.0.1这样 最近发现个问题,当强制把本机时间改大了一个月之后,再使用ntpdate向主机同步时间会报错: ntpdate[8115]: Can't a...

2018-04-02 16:36:08

阅读数:53

评论数:0

非阻塞套接字connect

EINPROGRESS The socket is nonblocking and the connection cannot be completed immediately. It is possible to select(2) or poll(2) for completi...

2018-03-22 11:29:32

阅读数:105

评论数:0

linux守护进程

1.守护进程最重要的特性是后台运行。 2.守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。 总之,除开这些特殊性以外,守护进程与普通进程基本上没有什...

2018-03-08 21:05:10

阅读数:661

评论数:0

shell脚本打印日志

#!/bin/bash LOG_FILE="/var/log/test.log" >"${LOG_FILE}" exec &>>${L...

2018-03-05 16:31:31

阅读数:2418

评论数:0

docker run --rm

先引用docker run命令的帮助文档原文: Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…] Run a command in a new container –rm Automatically remove the containe...

2018-03-05 14:55:45

阅读数:753

评论数:0

pipework给docker设置mac

继我上一篇文章pipework给docker设置ip,现在需求增加了还要设置mac,pipework也提供了这个功能。我们可以看看pipework的语法: Syntax: pipework hostinterface [-i containerinterface] [-l localinter...

2018-01-18 20:28:32

阅读数:922

评论数:0

github管理代码

首先要去https://github.com/注册一个账号,然后Create a new repository,记下我们的用户名,邮箱和仓库名字。 然后在linux上安装git服务,执行ssh-keygen -t rsa -C “314899581@qq.com”生成秘钥,执行完成之后在~/...

2018-01-17 18:03:55

阅读数:184

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭