- 博客(200)
- 收藏
- 关注
原创 C++ strftime和std::get_time对linux struct tm的作用
代码说明一切。strftime给 struct tm结构体的日期的年+1900,月份+1,并按格式转成字符串std::get_time则对字符串获取struct tm结构体,年份-1900,月份-1代码如下:#include <iostream>#include <stdio.h>#include <time.h>#include &l...
2018-10-18 20:39:48 2610
原创 linux tail命令监控日志神器
直接说重点,监控的日志文件名为filename,cd到他所在位置下,执行tail -n 100 filename -f可以监控日志的动态变化。-n显示最后的多少行,-f 用于监视文件增长,没有-f,看不到日志动态新增。tail命令懂得这两个参数就够了。 ...
2018-10-15 20:45:12 1502 1
原创 给snprintf函数弄个动态的格式串
先上代码:#include <stdio.h>int main(){ char chBuf[40] = {0}; char chParam[24] = {0}; snprintf(chParam, sizeof(chParam), "%%0%dd",4); snprintf(chBuf , sizeof(chBuf), chParam, 6); printf("---...
2018-03-26 23:37:44 596
转载 每天一个linux命令(37):date命令
每天一个linux命令(37):date命令在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。1.命令格式: date [参数]... [+格式]2.命令功能:date 可以用来显示或设定系统的日期与时间。3.命令
2018-02-27 23:08:51 305
原创 Linux使用带时区转换的时间函数注意事项(负负得正)
linux时间结构体定义:struct tm{ int tm_sec; //代表目前秒数,正常范围为0-59,但允许至61秒 int tm_min; // 代表目前分数,范围0-59 int tm_hour; //从午夜算起的时数,范围为0-23 int tm_mday; //目前月份的日数,范围01-31
2018-02-27 22:46:12 2668
转载 DLMS电能表通讯协仪
本文是对于IEC62056协议族,即DLMS协议族的中文说明手册。本文并没有包含DLMS协议族的全部,但解释了在应用中可能出现的大多数情况。本文的目的是为电能量数据采集终端提供与使用DLMS协议族的电能表通讯的协议说明。 本文参考文献如下: (1)DLMS User Association , COSEM Identification System andI
2017-11-23 23:08:44 11762
原创 C++11实现生产者和消费者
#include #include #include #include #include #include #include class CThreadMsg{private: std::deque m_data; std::mutex m_mtx; // 全局互斥锁. std::condition_variable m_cv; // 全局条件变量. int
2017-09-06 14:22:33 869
原创 使用C++把字符串写入文件
#include <fstream> #include <iostream>#include <string>int write_string_to_file_append(const std::string & file_string, const std::string str ){ std::ofstream OsWrite(file...
2017-09-04 19:09:54 29259 9
原创 使用libvlc播放音乐,实时获取位置、播放状态、时长,播放httpURL
#include #include #include "vlc/vlc.h" #include "libvlc.h"#include "libvlc_media_player.h"#include "libvlc_media.h"#include "log_c.h"#include "VlcMusicPlayer.h"#define url_temp "/share/mus
2017-09-03 22:48:23 6607 2
原创 ubuntu安装vlc
sudo apt-get install libvlc-devsudo apt-get install vlc##重装sudo apt-get install --reinstall vlc##重装sudo apt-get install --reinstall vlc-noxsudo /usr/lib/vlc/vlc-cache-gen -f /usr/lib/vlc/plugi
2017-09-02 22:35:57 1967
原创 使用libvlc简单的播放一首本地音乐文件
#include #include #include "vlc/vlc.h" #include "libvlc.h"#include "libvlc_media_player.h"#include "log_c.h"//#define url_temp "/share/music/20Hz-stero.wav"#define url_temp "/share/music/1
2017-09-02 22:30:47 2863 1
原创 C++11 thread编程调用类方法并传入参数
#include #include class classA{public : classA() { std::cout<<" classA " <<std::endl; } void func(int a, const char *pchText) { std::cout<<" func " <<std::endl; m_a = a;
2017-08-31 10:21:12 4816
转载 linux 端口号分配
端口号分配TCP和UDP采用16b的端口号来识别应用程序。那么这些端口号是如何选择的呢?服务器一般都是通过知名端口号来识别的。例如,对于TCP/IP实现来说,每个FTP服务器的TCP端口号都是21,每个Telnet服务器的TCP端口号都是23,每个TFTP(普通文件传输协议)服务器的UDP端口号都是69。任何TCP/IP实现所提供的服务都用知名的1~1 023之间的端口号。这些知名端口号由
2017-08-27 17:06:37 8554
转载 使用cJSON解析JSON字符串
JSON学习-使用cJSON解析 使用cJSON解析JSON字符串 一、为何选择cJSON 我们在使用JSON格式时,如果只是处理简单的协议,可以依据JSON格式,通过对字符串的操作来进行解析与创建。然而随着协议逐渐复杂起来,经常会遇到一些未考虑周全的地方,需要进一步的完善解析方法,此时,使用比较完善的JSON解析库的需求就提出来了。
2017-08-25 06:06:48 4816
原创 使用select实现多线程定时器
#include #include #include #include #include #include #include #include int set_timer_s(long u32Time){ struct timeval stuTime; int ret = 0; memset(&stuTime, 0, sizeof(struct
2017-08-20 19:21:08 3905
原创 C++ STL list的初始化、添加、遍历、插入、删除、查找、排序、释放
list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。使用list容器之前必须加上STL的list容器的头文件:#include; list属于std命名域的内容,因此需要通过命名限定:using std::list;也可以直接使用全局的命名空间方式:using nam
2017-08-20 14:31:28 161852 6
转载 结构体中运算符的重载
C++中,结构体是无法进行==,>,=,比如二分查找,binary_crearch只能对数组进行查找,如果是结构体数组的话,它会报错。但很可惜,实际编程中,大部分时候操作对象是结构体数组。二分查找结构体数组的程序如下:[cpp] view plain copy#include #include #include
2017-08-20 14:12:08 6870
转载 linux运行级别
也许大家偶然会发现/sbin里有个init命令。你知道它是如何使用的吗? 如果你不喜欢使用图形登录方式,如何能够让用户在控制台下运行startx命令呢? 有时你要维护服务器,暂时不希望别的用户登录系统,但自己仍对网络有访问权,又该怎么办呢? 其实,如果你知道了三个问题之间的关系,它们就不成问题了。让我们这里入手了解一下Linux的运行级别(runlevel)吧! 其实ini
2017-08-19 20:23:29 351
原创 linux开机启动自动执行某个脚本
有时候我们需要在开机的拉起一个服务或进程。比较方便的改法是在文件/etc/rc.local,编辑这个文件,在末尾添加source 脚本名称.sh脚本run_httpd_server.sh的内容#!/bin/bashexport BASE_DIR=$(pwd)echo ${BASE_DIR}cd /share/http/apache2.2.32-install/
2017-08-19 20:18:54 28282
原创 HTTP POST方法的学习
在POST方法下,CGI程序可以直接从服务器的标准输入中获取数据,不过要先从CONTENT_LENGTH这个环境变量中得到POST参数的长度,然后再读取相应长度的内容。先弄个post.html,并放到htdocs目录下。CGI POSTMethod:POOSTPlease input two number:*=代码如下:#inclu
2017-08-19 13:56:25 1790
原创 HTTP GET参数的获取
REQUEST_METHOD的值一般包括POST和GET两种GET参数的获取在GET方法下,CGI程序无法直接从服务器的标准输入中获取数据,因为服务器把从标准输入接收到的数据编码到环境变量QUERY_STRING(或PATH_INFO),采用GET方法时,只需把这些数据附加到URL的末尾,如http://192.168.1.211:8080/cgi-bin/222?s=1&b=3&u=0,
2017-08-17 21:36:25 2967
转载 编程之美——寻找数组中最大的K个数
从别人的那里转过来,这种题目,其实就是需要使用分治方法编程之美上的寻找N个数中最大的前K数,给出了一种算法,我认为比较好:算法是这样写的: 假设N个数存储在数组S中,我们从数组S中随机选出一个元素X,把数组分为两部分Sa和Sb.Sa中的元素都大于X,Sb中的元素都小于X,这时,有两种可能性:1.Sa中元素的个数小于K,Sa中所有的数和Sb中最大的K-|Sa|个数(|S
2017-08-16 21:15:47 1720
原创 C++map删除多个元素的方法
比如的map。typedef std::map mapPeopleType;现在要求序号取余2为0 的成员。正确的方法:#include #include #include typedef std::map mapPeopleType;void for_each(mapPeopleType &PeopleMap){ mapPeopleType::it
2017-08-16 18:11:50 4645
原创 获取CGI环境变量
1.CGI环境变量简介CGI程序继承了系统的环境变量,CGI的环境变量,在CGI程序在启动时初始化,结束时销毁,当一个CGI程序不是被HTTP服务器调用时,其环境变量基本是系统的环境变量。当属于HTTP服务器调用时,他的环境变量就会多了以下关于HTTP服务器、客户端、CGI传输过程等项目。 CGI相关的环境变量有三种,与请求相关的环境变量、与服务器相关的环境变量,以及与客户端相关
2017-08-16 16:04:14 3877
原创 编写第一个CGI程序
1.首先确定自己的apache http服务器启动。服务器还没起来呢启动服务器2.编写cgi可执行文件#include int cgi_hello_world(){ std::cout<<"Content-type:text/html\r\n\r\n"; std::cout\n"; std::cout\n"; std::co
2017-08-16 14:49:29 1556
转载 linux netstat命令简介
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re
2017-08-16 13:09:40 287
原创 CGI简介
CGI,即通用网关接口,属于一个Web服务器提供信息服务的标准接口。浏览器访问web服务器,web服务器可以通过CGI接口获取客户提交的信息,转交给服务器端CGI程序进行处理,最后返回结果给客户端。 CGI系统主要由浏览器的HTML页面已经在服务器上的CGI程序组成。整个通信的采用的是HTTP协议,因此,需要知道浏览器请求执行服务器上的哪个CGI程序就可以。 服务器
2017-08-16 11:10:30 578
原创 HTTP协议结构
HTTP协议无论是请求报文还是回应报文,都分为以下4个部分。(1)报文头(initial line),比如访问百度的例子,”GEThttp://www.baidu.com/favicon.ico HTTP/1.1”表示用GET方法请求http://www.baidu.com/favicon.ico这个文件,用的是HTTP/1.1协议。(2)0个或者多个请求头(header line)
2017-08-11 16:36:13 669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人