C/C++
文章平均质量分 57
Struggling-Snail
这个作者很懒,什么都没留下…
展开
-
restrict关键字
restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化代码,生成更有效率的汇编代码.如 int *restrict ptr, ptr 指向的内存单元只能被 ptr 访问到,任何同样原创 2014-04-16 00:30:04 · 870 阅读 · 0 评论 -
后台服务器CPU使用率高 问题分析方法
一、找出cpu使用率高的进程和线程: a、将 cpu 占用率高的线程找出来:ps H -eo user,pid,ppid,tid,time,%cpu,cmd--sort=%cpu b、对于多线程的服务,通过top命令得到cpu使用率高的进程后,可以使用如下命令查看该进程下各线程cpu使用率ps -eLo pid,lwp,pcpu | grep PID c、直接使用原创 2015-01-23 17:55:12 · 3646 阅读 · 0 评论 -
C++ 访问控制权限图解
基类访问权限类继承方式子类访问权限 public public protectedpublicprotected private No Access public protected protectedprotectedprotected原创 2014-11-06 10:30:38 · 1290 阅读 · 0 评论 -
linux内存管理内幕
忽然想起前几天在公司看到一篇关于内存管理的文章,但当时由于别的事情给打断了。今天想起来,就又在网上找了一下,与大家分享一下。虽然自己现在从事内核模块开发,对内存池和引用计数也有所了解,但由于理解深度及文笔,不能自己娓娓道来,所以就和大家一起来瞻仰一下大师给我们的讲解。以下内容来自于http://www.ibm.com/developerworks/cn/linux/l-memory/原创 2014-09-27 10:40:38 · 1451 阅读 · 0 评论 -
字符串翻转
将字符串翻转,如下:输入:Hi Welcome to cricode输出:cricode to Welcome Hi#include #include #include using std::cout;using std::endl;using std::string;using std::stack;void main(){ string原创 2014-09-27 11:20:41 · 1165 阅读 · 0 评论 -
大数相乘
原文地址:#include #include #include void multiply(char* a, char* b, char* c){ int sa = 0; int sb = 0; int i,j; int *result = NULL; if ((NULL == a) || (NULL == b) || (NULL == c)) { retu原创 2014-09-15 00:15:17 · 1210 阅读 · 0 评论 -
linux日志系统介绍 —— syslog(),openlog(),closelog()
函数使用介绍这里面的三个函数openlog, syslog,closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。 通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管原创 2014-04-26 02:15:06 · 28401 阅读 · 0 评论 -
sprintf使用详解
函数简介编辑功能把格式化的数据写入某个字符串缓冲区。头文件stdio.h原型int sprintf( char *buffer, const char *format, [ argument] … );参数列表buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。[argument]...:可选参数,可以是任何类型的数据。原创 2014-04-24 23:01:20 · 2268 阅读 · 0 评论 -
linux编程 关于国际化
看shell命令源码时发现在main函数开始的地方会先设置本地环境,就在网上找了一些文章,先收藏了,以后整理。函数:setlocale (LC_ALL, "");bindtextdomain (PACKAGE, LOCALEDIR);textdomain (PACKAGE);Linux国际化 http://blog.chinaunix.net/uid-10995602-原创 2014-04-08 22:57:30 · 880 阅读 · 0 评论 -
编写自己的linux bin文件
一个简单的小程序模拟一条 linux命令 生成的一种方法。my_bin.c#include "stdio.h"#define MAX_SIZE 10#define TRUE 1#define FALSE 0void usage(){ printf("********************* usage *********************原创 2014-03-17 00:14:54 · 1077 阅读 · 0 评论 -
gcc参数错误导致的makefile错误
今天写一个小makefile文件,出现以下错误:linux:/mnt/hgfs/vmware-share # makecc -o my_bin.o my_bin.ccc -o my_bin my_bin.omy_bin.o:(.rodata+0x0): multiple definition of `_fp_hw'/usr/lib/gcc/i586-suse-linux/4.0.2原创 2014-03-23 12:31:14 · 2975 阅读 · 0 评论 -
"Hello World " —— 深入理解程序从编译到运行
对于C语言编写的Hello World程序(如下),对于程序员来说肯定如雷贯耳,就是这样一个简单的程序,你真的了解她吗?#include int main(){ printf("Hello World\n") return 0;}对于下面这些问题,你脑子里能够马上反映出一个清晰、明显的答案吗?程序为什么要被编译器编译之后才可以运行?编译器在把C语言程序转换成可原创 2014-04-17 22:06:45 · 4986 阅读 · 0 评论 -
windows命令行编译 —— cl编译
1、修改环境变量 在系统属性-高级-环境变量-用户变量中: 编辑PATH增加cl编译器的路径D:\Program Files\Microsoft Visual Studio 10.0\VC\bin, 以及MSPDB60.DLL的路径D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE,用分号分隔。新建变量IN原创 2014-03-22 23:50:35 · 1402 阅读 · 0 评论 -
c语言NULL和0区别及NULL详解
先看下面一段代码输出什么:#includeint main(){ int *p=NULL; printf("%s",p); }输出 ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0,在C语言中,NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL转载 2014-03-22 22:45:18 · 1162 阅读 · 0 评论 -
gcc 4.4.6安装
1/ 下载源码:https://ftp.gnu.org/gnu/gcc/gcc-4.4.6/2/ 安装:tar -zxvf gcc-4.4.6.tar.gzmkdir /usr/bin/gcc-4.4.6cd ./gcc-4.4.6./configure --prefix=/usr/bin/gcc-4.4.6 --enable-language=c,c++,java报错,...原创 2019-03-13 20:26:56 · 2807 阅读 · 1 评论