- 博客(36)
- 收藏
- 关注

原创 linux好用的命令
1、命令内容:ps -e | grep isa命令功能:显示进程名中带有isa的所有进程的信息命令内容:ps -TF -p 17003命令功能:显示进程号为17003的进程所创建的所有线程,SPID为线程的资源id,STIME为线程创建时间命令内容:ps -T -p 17003命令功能:显示进程号为17003的进程所创建的所有线程(线程的名称可显示)使用示例:2...
2019-02-23 11:40:05
586
原创 python使用xlwings操作表格
# -*- coding: UTF-8 -*-##库安装的教程:包含mac和windows #https://zhuanlan.zhihu.com/p/107086691import xlwings as xw#创建excel实例,打开Excelapp = xw.App(visible = True,add_book = False)#打开工作簿target = app.bo...
2020-02-26 21:46:24
2940
原创 C++11 定时器
/* * File: Timer * Module: service * Description:定时器类 * Author: */#pragma once#include<functional>#include<chrono>#include<thread>#include<atomic>#include<memo...
2020-01-02 15:59:45
1250
原创 线程私有数据封装类
#pragma once#include <pthread.h>#include "util/tc_common.h"namespace local {template<typename T>class ThreadLocalPointer {public: typedef pthread_key_t SlotType; typedef ...
2019-12-28 10:19:38
236
原创 shell脚本设置
alias updatedb='/usr/libexec/locate.updatedb' export PATH="$PATH:$HOME/.ft" # Tell ls...
2019-11-23 14:25:09
229
原创 C++11的一些特性代码片段
1、获取时间的方式#include <chrono>#define CUR_MS (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now().time_since_epoch()).count())#define CUR_US (std::chr...
2019-09-02 17:12:57
203
原创 Vim工程开发环境配置
Vim工程开发环境配置Vim的几个使用备忘Vim的几个使用备忘内容作用%跳转到配对的括号去[[跳转到代码块的开头去(但要求代码块中’{'必须单独占一行)gD跳转到局部变量的定义处‘’跳转到光标上次停靠的地方, 是两个’, 而不是一个"mx设置书签,x只能是a-z的26个字母·x跳转到书签处("`"是1左边的键)>增加缩...
2019-08-29 16:14:48
210
原创 C++易错程序测试
1、const成员函数以及返回引用#include <stdio.h>#include <string>#include <iostream>class leslieyuan {public: leslieyuan(std::string name, int age) : m_name(name),m_age(age) {} ~l...
2019-07-03 22:30:58
141
转载 vim+clion常用功能及命令
命令内容 命令功能 备注 :sp 横向分割窗口 +filename打开文件 :vsp 纵向分割窗口 +filename打开文件 ctrl+ww 切换分频窗格 command+shift+[/] 切换tab页面 Clion快捷键 v/V 视图模式/行视图模式 d0/d$ 删除...
2019-06-14 14:52:27
2748
原创 socket编程(二)——epoll实现io复用
原文:https://blog.youkuaiyun.com/u011068702/article/details/628813151、epoll介绍 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在...
2019-05-17 16:37:06
233
转载 CMake使用教程
https://blog.youkuaiyun.com/dabenxiong666/article/details/53998998https://www.hahack.com/codes/cmake/编写的测试的文件目录如下:cmaketest | +--- MakeLists.txt | +--- config.h.in | +--- m...
2019-05-15 12:28:52
441
原创 数据库——关系型数据库和非关系型数据库调研
系统集成组数据库调研对比文档关系型数据库和非关系型数据库组内使用数据库为关系型数据库oracle,现在市场上出现了更为流行的关系型数据库诸如Mysql/MariaDB、PostgreSql、PPAS(增强型PostgreSql),以及当前在大数据框架中比较流行的非关系型数据库诸如Redis、MongoDB等。首先从大的框架进行对比,关系型数据库和非关系型数据库之间的区别,以及两者使...
2019-04-04 09:27:10
2240
原创 设计模式——单例模式
单例模式分为两种:一种为懒汉模式(顾名思义就是比较懒,需要的时候采取初始化一个对象),饿汉模式(一开始就全局初始化),其中懒汉模式又分为两种,类内局部静态变量和加锁判空的方式。方法一:懒汉模式 指针初始化//////////////////////////////////////////Begin 单例懒汉模式 指针初始化/////////////////////////////c...
2019-04-01 22:30:53
133
原创 linux——动态库
1、使用gcc或者g++命令生成动态库gcc -fPIC -shared test.c -o libtest.so2、通过-L选项添加动态库的搜索路径,通过-ltest去链接上文中生成的libtest.so,由于linux中对于动态库的搜索默认以lib开头,以so结尾后缀,所以步骤1中生成的动态库必须是libxxx.so的形式(很多时候自己只生成为test.so的形式,导致链接总是不成功...
2019-03-30 13:21:23
326
原创 linux中一个minishell终端的功能实现及延伸思考——多进程
在阅读《程序员的自我修养》一书中,关于可执行文件的装载一节中有一个实现minishell脚本的一段代码,大致功能是在该程序中输入需要加载的应用的名称,回车后可以得到对应的应用,有点类似一个shell终端,下面是我自己编程测试以及在这个过程中关于多进程的一些测试:情况一:#include <stdio.h>#include <unistd.h>#include ...
2019-03-28 23:31:51
287
转载 C++——程序的内存结构
问题引出:在看一些资料博客的时候说线程共享同一个进程的代码段和数据段,又有说法是代码段和数据段在可执行文件中加载,比较疑惑,下面稍微具体的整理一下。在解释原因前我们先看一下一个由C/C++编译的程序占用的内存分为几个部分:int a = 0; //全局初始化区 char *p1; //全局未初始化区 main() { int b; //栈 char s[] =...
2019-03-09 11:01:58
5714
1
原创 单链表逆置——C++实现的两种方法
方法一:实现单链表逆置的时候,把下一节点提前保存,然后修改指向关系,再更新遍历的节点,最后更改头指针的指向和引用即可//方法一#include <stdio.h>//单链表的结构体typedef struct node{ int data; struct node* next;}Node,*pNode;void reverseLinkList(pNode...
2019-03-09 10:05:13
5120
转载 TCP/IP——sockaddr和sockaddr_in结构体
================转载自https://blog.youkuaiyun.com/gladyoucame/article/details/8768731======sockaddrstruct sockaddr {unsignedshortsa_family;/* address family, AF_xxx */charsa_data[14];...
2019-03-06 17:06:36
675
原创 动态库编译—fPIC地址不相关的编译选项
使用libgsoap的I2模块编译生成动态库的时候出问题:可以看出是因为libgsoap的动态库调用有问题,并且给出了建议重新使用-fPIC选项进行编译解决:解决在链接生成自己的动态库时遇到:libgsoap.a(libgsoap_a-stdsoap2.o): relocation R_X86_64_32S against `a local symbol' can notbe...
2019-02-28 19:37:22
2097
1
转载 kill命令——系统内部执行流程
问题背景之所以想考虑记录这个问题是由于在一次面试的过程中,面试官问道在linux服务器上如何跑一个守护进程,即在通过shell终端登入系统执行该进程后,推出shell终端,应用进程不会退出,我的回答是使用shell脚本添加到自启动中去。面试官而后又引导我回到在linux系统中执行kill命令之后系统实际发生了什么(或者换一个问题,当在终端中按下ctrl+c之后为什么可以结束一个进程)说明:...
2019-02-27 19:23:40
5192
2
原创 linux系统——窗口管理器和桌面环境的区别
基本上有三层可以包含在Linux桌面中:X Windows – 这是允许在显示器上绘制图形元素的基础。 X Windows构建允许移动窗口,与键盘和鼠标交互并绘制窗口的原始框架。这对于任何图形桌面都是必需的。窗口管理器 – 窗口管理器是控制窗口放置和外观的难题。窗口管理器包括:Enlightenment,Afterstep,FVWM,Fluxbox,IceWM等。需要X Windows而不...
2019-02-27 14:37:14
8871
原创 socket编程(一)——IO复用及IO复用服务端
在网络编程的过程中,一直不太清晰的几个问题:1、我已经知道一个服务端socket的产生过程为socket()->bind()->listen()->accept(),但是服务端是如何高效的与多个客户端连接这个问题一直没有很清晰的流程?该如何选取使用多线程+非阻塞式(对应每一个链接都要开辟一个线程)还是非阻塞+io复用模式?2、socket编程过程中,setsocketop...
2019-02-26 11:14:04
1175
原创 git使用命令记录
一、git本地添加到github远程仓库进入到本地仓库所在文件夹git remote add origin https://github.com/jeremiahyuansong/XMindNote.gitgit push -u origin master二、git本地仓库新建进入你要创建仓库的文件夹git init三、仓库拷贝git clone https:/...
2019-02-23 14:12:38
150
原创 centos更换KDE桌面环境的问题排查
为了解决一个centos系统上的显示问题:2、更换KDE桌面环境yum groupinstall "KDE Plasma Workspaces"问题:更换桌面环境后重启启动不了Xserver, failed to initialize the NVIDIA kernel module 应该是和以troubleshooting模式安装系统并更新系统显卡驱动有关系,因为如果直接...
2019-02-23 14:10:26
2154
原创 自己写的有用的shell脚本
一、进程监听自启动shell脚本#!/bin/shwhile [ 1 ]dops -fe|grep chargepost |grep -v grepif [ $? -ne 0 ]thenecho chargepost `date '+%Y%m%d %H:%S:%M'`echo "start process....."cd $PRJHOME/bin;./chargeposte...
2019-02-23 11:27:42
247
原创 C++中字符串数组名和字符串指针的区别
字符串数组名是一个常量指针 指针不能更改 指针内容可以更改(下图中企图用字符串数组名b给a赋值,报错,因为此时的数组名是一个常量指针)字符串指针是一个指针常量 所指内容不能变 但是指针可以引用另一个指针(预图更改字符串指针所指向内容时候程序崩溃) ...
2019-02-23 11:21:24
2003
原创 61850——Da模式、Do模式
今天遇到问题接收到正确的61850报文,但是没有解析出对应的数据,后来发现是给的icd文件Da模式、Do模式的配置问题。装置给的icd配置了da模式,但是上送的报文还是Do模式的structer结构形式,导致没有解析出数据。Da模式下的报文结构及Icd文件配置:Do模式下的报文结构及Icd文件配置(明显的特点是报文按照structer的形式上送) ...
2019-02-23 11:20:28
3547
1
原创 C++——操作符重载
类的操作符重载 :关键字operator再加上需要被重载的操作符,如下代码实现将两个Emploee类的对象进行相加。 #include <stdio.h>#include <iostream>#include <string>using namespace std;using std...
2019-02-23 11:15:20
221
原创 linux下的多线程编程与线程同步问题
#include <pthread.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <stdlib.h>#include <iostream>using namespace std;//通过互斥锁和条件变量的方式实现一个典型...
2019-02-23 11:14:09
211
原创 QT中pro文件的编写实例
===========================================20180417============================ 编译程序过程中报找不到某个头文件中定义的#include <vector>,经查改文件为C++库的标准文件,且这个文件在同一台电脑另外的项目中是能够编译通过的,所以怀疑是pro文件写的有问题,...
2019-02-23 11:12:27
647
原创 linux和unix下的socket编程
================================20180410==================================== 今天在跨平台移植原来windows平台的软件到solaris时候,编译出现如下错误: 写了个测试代码如下: ...
2019-02-23 11:09:38
614
原创 tcp/ip中设置keepalive的socket选项
在solaris上进行跨平台编译的时候,如下几个和tcp相关的变量未能够正确找到定义,导致报错:tcp_keepidle、tcp_keepintvl、tcp_keepcnt。 一、描述 这几个变量均为用来设置tcpkeepalive选项的参数,相关功能描述如下: tcp_keepidle:在双方连...
2019-02-23 11:06:51
5047
原创 Libzdb在solaris上实战问题记录
libzdb编译学习下载安装包之后,按照经典三步骤方法./configure、gmake、gmake install,很显然,没有那么简单,果然,第一个步骤就出问题啦。./configure 在一台安装过oracle10g数据库的服务器上执行configure命令之后,终端显示没有使能oracle数据库,进一步查看信息,发现没有找到连接oracle数据库需要使用的oci的...
2019-02-23 11:01:35
261
原创 libzdb数据库连接池学习笔记
1. 问题背景微信公众号后台在调试过程中出现调用下发控制指令接口是dump的情况,经过gdb调试及打印信息输出排查后,可能原因是客户端并行发起请求时对数据库的打开和关闭操作冲突导致。考虑加锁或者单例可能会对数据库的操作效率降低,建议使用数据库连接池,通过数据库连接池来同时维护多个数据库实例的连接,这样既解决了并行访问时数据库连接实例的分配问题,也保证了效率。2. 数据库连...
2019-02-23 10:56:39
861
原创 总结所有遇到的C++常用技巧
=================20180708======================////////////////////C++中分割string字符串 substr方法////////////////////////////////vector<string> gethalfstringvector(string inputString){vector...
2019-02-19 09:31:39
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人