
c++
aircoder
这个作者很懒,什么都没留下…
展开
-
c++ 动态内存分配
先看一段代码:[cpp] view plaincopy #include using namespace std; void GetMe(char *p,int num) { p=(char*)malloc(sizeof(char)*num); } int ...原创 2013-08-28 22:35:46 · 160 阅读 · 0 评论 -
c语言特殊字符串复制
2.strcpy和memcpy主要有以下3方面的区别。2.1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。2.3、用途不同。通常在复制字符串时用strcpy,而需要复...原创 2013-05-06 01:59:14 · 577 阅读 · 0 评论 -
Linux多线程同步的几种方式
Linux多线程同步的几种方式 线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。 1)互斥锁(mutex) 通过锁机制实现线程间的同步。同一时刻只允许一个线程执行一个关键部分的代码。 int pthread_mutex_init(pthread_m...原创 2013-04-22 22:49:46 · 170 阅读 · 0 评论 -
关于linux环境下信号SIGCHLD的排队机制
下面是关于在SIGCHLD的一遍网上的摘要,但是在linux中是不许要这样做的。 signal(SIGCHLD,SIG_IGN); 就可以了,我已经子啊ubuntu12.04上面做过了测试! 1 #include 2 #include 3 #include 4 #include 5 #include 6 int main() 7 { 8 ...原创 2013-04-07 22:13:48 · 360 阅读 · 0 评论 -
Linux下的定时器
Linux下的定时器有两种,以下分别介绍: 1、alarm 如果不要求很精确的话,用 alarm() 和 signal() 就够了 unsigned int alarm(unsigned int seconds) 专门为SIGALRM信号而设,在指定的时间seconds秒后,将向进程本身发送SIGALRM信号,又称为闹钟...原创 2013-04-07 20:05:35 · 117 阅读 · 0 评论 -
linux 信号量
目录 SIGCHLD 描述编辑本段SIGCHLDSIGCHLD属于unix以及类unix系统的一种信号产生原因 siginfo_t代码值1,子进程已终止 CLD_EXITED2,子进程异常终止(无core) CLD_KILLED3,子进程异常终止(有core) CLD_DUMPED4,被跟踪子进程以陷入 CLD_TRAPPED5,子进程已...原创 2013-04-04 22:24:36 · 143 阅读 · 0 评论 -
makefile例子
CC = gccCPP = g++CFLAGS = -g -Wall -WerrorDEST = exeOBJECT = main.o ManagerService.o bloom.o$(DEST): $(OBJECT) $(CPP) $(CFLAGS) $(OBJECT) -o $(DEST) -leventbloom.o: bloom.c ...原创 2013-04-04 21:29:37 · 117 阅读 · 0 评论 -
c++动态内存
1 #include 2 #include 3 #include 4 using namespace std; 5 // error! 6 void getPointer(char * pr, int num) 7 { 8 9 pr = (char *)malloc(sizeof(char)*num); 10 11 } 1...原创 2013-04-03 12:00:37 · 89 阅读 · 0 评论 -
c++模板
c++ 模板不需要分离。即所有东西写在 .h 文件中好了网上看见的例子: 1 #include 2 3 #include "ClassTemplate.h" 4 5 using std::cout; 6 7 using std::endl; 8 9 i...原创 2013-04-01 19:08:11 · 179 阅读 · 0 评论 -
开源的一个线程池
/* Thread Pool implementation for unix / linux environments Copyright (C) 2008 Shobhit Gupta This program is free software: you can redistribute it and/or modify it under the ter...原创 2013-03-29 17:06:56 · 196 阅读 · 0 评论 -
static volatile 使用问题
static volatile int k; 在。h 文件中这样写是错误的。但是都在一个。cpp中是ok的例如: 1 #include 2 3 using namespace std; 4 5 int main() 6 { 7 8 9 static bool volatile s = f...原创 2013-03-29 14:46:38 · 507 阅读 · 0 评论 -
pthread_mutex_destroy 信号量将阻塞!
#include 2 #include 3 #include 4 pthread_mutex_t command_mutex_ = PTHREAD_MUTEX_INITIALIZER; 5 pthread_cond_t command_cond_ = PTHREAD_COND_INITIALIZER; 6 int main(){ 7 8 pth...原创 2013-03-29 11:14:52 · 1169 阅读 · 0 评论 -
linux多线程之pthread_cancel结束线程(防止死锁)
linux多线程之pthread_cancel结束线程摘要:这篇文章主要从一个 Linux 下一个 pthread_cancel 函数引起的多线程死锁小例子出发来说明 Linux 系统对 POSIX 线程取消点的实现方式,以及如何避免因此产生的线程死锁。目录:1. 一个 pthread_cancel 引起的线程死锁小例子2. 取消点(Cancellation Point)3...原创 2013-03-28 18:28:21 · 310 阅读 · 0 评论 -
c++ 虚拟抽象类
Runnable.h: 1 #ifndef RUNNABL_H_ 2 #define RUNNABL_H_ 3 4 class Runnable 5 { 6 7 8 public: 9 10 virtual void* run (void * v) = 0; 11 12 ...原创 2013-03-27 15:29:38 · 144 阅读 · 0 评论 -
c++ 多线程编程的时候遇到了一个编译问
今天在进行多线程编程的时候遇到了一个编译问题:error: argument of type ‘void (PIAMW::Communicator::)()’ does not match ‘void* (*)(void*)’后来发现将线程处理函数声明为static类型,问题得解。 其实这个原因很简单,当把线程函数封装在类中,this指针会作为默认的参数被传进函数中,从而和线程...原创 2013-03-27 15:22:15 · 532 阅读 · 0 评论 -
c++ 静态变量使用
class T{public : T(); void sysi(); void addi(); int k;};#include#include "t.h"using namespace std;//static 加与不加效果是一样的,私有的静态变量 int i = 0;T::T(){k=0;// 局部变量...原创 2013-03-26 20:32:55 · 126 阅读 · 0 评论 -
tinyxml 实例
tinyxml 实例例子见附件原创 2013-02-28 15:00:37 · 83 阅读 · 0 评论 -
C++ 中char*,const char*,string 轉換
1. string转const char*string s = "abc";const char* c_s = s.c_str();2. const char*转string 直接赋值即可const char* c_s = "abc";string s(c_s); 3. string转char*string s = "ab...原创 2013-02-26 11:34:22 · 137 阅读 · 0 评论 -
c++错误
1:AA.h:1:17: 错误: ‘struct bb’重定义AA.h:1:17: 错误: ‘struct bb’的前一个定义没有 加 #ifndef AA_h 2 #define AA_h 但是引用了多次 AA.h2: cout原创 2013-02-21 18:43:32 · 123 阅读 · 0 评论