Linux内核编程知识集锦
1 |
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
根据需要,切换分支。
1 |
apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison |
你也可以手工直接编辑.config文件。每个选项都可以设置以下值之一:
取值 | 说明 |
y | 将相应特性构建到内核中 |
n | 不包含此特性 |
m |
构建为模块,这样可以按需加载 注意:
|
使用Python进行文本处理
在Python2中,类型 str 和 unicode 分别用于表示单字节字符串和Unicode字符串;在Python3中,所有字符串都使用Unicode表示,类型为str。
字符串可以使用单引号、双引号、三引号包围, 三引号中的字符串原样保留,可以方便的编写多行文本。
字符串的引号开始前,可以增加 u 、 r 修饰符,分别表示目标字符串是Unicode类型、不启用字符转义。
Python没有单独的字符类型,字符只是长度为1的字符串
在Python语言中,字符串属于(不可变)序列,支持有限的切片操作:
在Python中,此操作符可以用于成…
阅读全文AutoTools学习笔记
开发一个C程序时,为了在不同环境下运行,可能需要考虑这些问题:
- 某些函数在某些环境下不存在,例如strtod()
- 同样功能的函数,名字不同,例如strchr() 与 index()
- 函数名称冲突,例如int setpgrp(voi…
Ubuntu下安装PHP
安装必要的软件:
1 |
sudo apt-get install php5-cgi |
修改配置:
注意:Web服务器下编写info.php可以获知php.ini位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
vim /etc/php5/apache2/php.ini #根据需要修改以下内容: #最大上传文件的大小 upload_max_filesize = 20M #错误报告相关配置 error_reporting = E_ALL display_errors = On display_startup_errors = Off log_errors = On log_errors_max_len = 1024 error_log = /var/log/php_errors.log ignore_repeated_errors = Off report_memleaks = On track_errors = On |
安装必要的软件:
修改配置文件:
现在调试客户端可以连接并进行调试了,需要注意的是,服务器必须能够连接到调试客户端。在调试位于外网服务器的PHP页面时,处于内网的调试客户端可能无法被直接访问,这时候最简单的方式就是使用VPN连接到服务器,上面的xdebug.remote_host填写VPN…
阅读全文Native编程知识集锦
不同编译器(甚至同一款编译器的不同版本)创建的目标文件(.o/.obj)、静态库常常不能相互链接,因此常常需要获得源码,从头编译。
动态链接库(DLL)的互操作性则较好,如果DLL是基于C编写的,那么互操作性通常不是问…
阅读全文日志组件Log4cplus的使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <log4cplus/logger.h> #include <log4cplus/configurator.h> #include <log4cplus/helpers/loglog.h> using namespace std; using namespace log4cplus; const char* LOG4CPLUS_CONFIG_FILE = "log4cplus.properties"; try { log4cplus::PropertyConfigurator::doConfigure( LOG4CPLUS_CONFIG_FILE ); } catch ( std::runtime_error& e ) { std::cout << "Failed to initialize log4cplus with config file: " << LOG4CPLUS_CONFIG_FILE << " due to: " << e.what() << endl; } Logger logger = Logger::getRoot(); LOG4CPLUS_DEBUG(logger, "Hello " << "World"); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
log4cplus.rootLogger=DEBUG, Console, File log4cplus.logger.AmqCppClient=DEBUG log4cplus.appender.Console=log4cplus::ConsoleAppender log4cplus.appender.Console.layout=log4cplus::PatternLayout log4cplus.appender.Console.layout.ConversionPattern=[%-5p] [%t] %d (%F:%L) %n%m%n log4cplus.appender.File=log4cplus::RollingFileAppender log4cplus.appender.File.File=F:/Temp/amq-cpp-client.log log4cplus.appender.File.MaxFileSize=5MB log4cplus.appender.File.MaxBackupIndex=5 log4cplus.appender.Console.layout=log4cplus::PatternLayout log4cplus.appender.Console.layout.ConversionPattern=[%-5p] [%t] %d (%F:%L) %n%m%n |
符号 | 说明 |
%% | 转义为% |
%c |
输出logger名称,例如std::string pattern ="%c" 时输出: "cc.gmem", 也可以控制logger名称的显示层次,比如"%c{1}"时输出"gmem", 其中数字表示层次 |
%D | 显示本地时间,当std::string pattern ="%D" 时输出:"2011-11-16 1… |
Ubuntu知识集锦
- PPA:Personal Package Archives,可以上传source,作为apt存储库
- APT:Advanced Packaging Tool,Debian GNU/Linux distribution及其变体上进行软件安装/更新/删除的工具,它简化了类linux系统的软件管理,可以进行二进制的安装或者源码编译的安装。最初是设计为pdkg的前…
Windows下基于Eclipse CDT的C/C++开发
- 到Eclipse CDT官网下载:http://www.eclipse.org/cdt/并安装
- Eclipse的相关配置可以参考:Eclipse 4.3.2开发环境搭建
下面的工具链可以根据工作环境进行选择性的安装。
- 安装MinGW,下载地址:http://sourceforge.net/projects/mingw/files/
- 安装MSYS,到http://sourceforge.net/projects/mingw/files/MSYS/下载 mingw-get-setup.…