Linux c/c++
xpmwgcwm
这个作者很懒,什么都没留下…
展开
-
Linux 下简单的 c 例子
1. write a simple c file waFunc.c#includemain(){ func1(); printf("this is a test\n"); return;}void func1(){ printf("this is func1\n");}void func2(){ pri...原创 2011-11-02 17:26:19 · 77 阅读 · 0 评论 -
常用的头文件
1. printf,snprintfneed #include 2. cout and cin#include using namespace std;3. accept string using cin[code="java"]#include #include // or #include "string.h"using names...原创 2014-02-25 10:29:57 · 83 阅读 · 0 评论 -
C++基础知识
1. typedef自定义数据类型,就是给已有数据类型起一个别名,方便自己的阅读或者其它目的typedef double area;typedef int nature;用新类型定义变量area a;nature b;2. 枚举数据类型enum game_result {win,lost,tie,cancel}3. 结构体结构体变...原创 2013-09-07 21:03:00 · 69 阅读 · 0 评论 -
记录日志
openlogsyslogcloselogexample[code="java"]#include main(int argc, char *argv[]){char *str = "test";openlog(argv[0],LOG_PID,LOG_USER);syslog(LOG_INFO,"%s\n",str);closelog();}...原创 2013-09-03 05:25:05 · 74 阅读 · 0 评论 -
Linux C 常用函数
1. Linux 常用C函数http://man.chinaunix.net/develop/c&c++/linux_c/default.htm2.原创 2013-09-03 05:17:37 · 61 阅读 · 0 评论 -
Linux 内存检查
在Linux下些C语言程序,最大的问题就是没有一个好的编程IDE,当然想kdevelop等工具都相当的强大,但我还是习惯使用kdevelop工具,由于没有一个习惯的编程IDE,内存检测也就成了在Linux下编写程序的一个大问题。 是不是说没有一种内存检查工具能够在Linux使用呢,也不是,像valgrind工具还是相当不错的。他的下载地址是http://valgrind.org/down...原创 2013-08-27 09:56:11 · 59 阅读 · 0 评论 -
GDB 调试
http://wiki.ubuntu.org.cn/%E7%94%A8GDB%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F#.E8.AE.BE.E7.BD.AE.E8.A7.82.E5.AF.9F.E7.82.B9.EF.BC.88WatchPoint.EF.BC.89rwatch i if i==5watch i if i==3cprint ii...原创 2014-06-13 09:56:57 · 157 阅读 · 0 评论 -
采用Makefile编译C++ 多个文件
1. 假设我们下面几个c++文件wherewhen.h wherewhen.ccountdown.h countdown.c 包含了math.h, 需要连接库文件main.c 主函数, main.c 包含了两个头文件 wherewhen.h and countdown.h第一种编译方法[code="java"]g++ -Wall -g wherewhen.c ...原创 2014-06-12 14:00:05 · 958 阅读 · 0 评论 -
RTP网络视频传输
http://javahigh1.iteye.com/blog/1206495原创 2013-08-17 07:02:51 · 135 阅读 · 0 评论 -
C++基础知识 -数组,指针与字符串
1. 数组 声明: int A[10],B[10] 初始化: int a[3]={1,1,1} 对于将全部元素都初始化的情况,可以不用说明元素个数 int a[]={1,1,1} 部分初始化时,必须给出元素的个数 float fa[5]={,1.0,2.0} 多维数组的初始...原创 2013-09-10 20:00:11 · 94 阅读 · 0 评论 -
虚基类,虚函数,虚析构函数
继承的类的前面加上virtual关键字表示被继承的类是一个虚基类,它的被继承成员在派生类中只保留一个实例[code="java"]class A{public: int iValue;};class B:public A{public: void bPrintf(){cout...原创 2013-09-22 09:36:47 · 494 阅读 · 0 评论 -
Linux gcc 编译生成动态和静态库
一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类linux下的库有...原创 2014-04-28 14:26:39 · 139 阅读 · 0 评论 -
Std::Map
1. map中的元素其实就是一个pair.2. map的键一般不能是指针, 比如int*, char*之类的, 会出错. 常用的就用string了,int也行.3. map是个无序的容器, 而vector之类是有序的. 所谓有序无序是指放入的元素并不是按一定顺序放进去的, 而是乱序, 随机存放的(被映射后近似随机存放).所以遍历的时候有些效率差别.4. 判断有没有找到该键的内容可以这样...原创 2014-04-08 15:23:07 · 49 阅读 · 0 评论 -
#pragma 用法
1. #pragma comment(lib,"Ws2_32.lib")表示链接Ws2_32.lib这个库。 和在工程设置里写上链入Ws2_32.lib的效果一样,不过这种方法写的 程序别人在使用你的代码的时候就不用再设置工程settings了为了避免同一个文件被include多次1 #ifndef方式2 #pragma once方式 只要在头文件的...原创 2014-09-01 13:20:55 · 142 阅读 · 0 评论 -
Linux epoll
int edfd = epoll_create(int size);生成一个Epoll专用的文件描述符,其实是申请一个内核空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。size就是你在这个Epoll fd上能关注的最大socket fd数,大小自定,只要内存足够。int epoll_ctl(int epfd, intop, int fd, structep...原创 2014-03-13 14:34:21 · 51 阅读 · 0 评论 -
套接字基础
1. int socket(int domain,int type, int protocol)int sockfd=socket(,,,);返回文件描述符,-1 表示错误需要头文件: domain : AF_INET,PF_INET,AF_INET6, IPv4 or IPV6type:SOCK_STREAM, SOCK_DGRAM, tcp or udppro...原创 2014-03-13 10:42:09 · 70 阅读 · 0 评论 -
Linux 使用共享内存
1. 共享内存与消息队列的区别消息队列在实现消息的收发时,首先由发送进程从进程空间将数据复制到内核分配的数据缓冲区中,接受进程再从内核的缓冲区复制到进程的虚拟地址空间共享内存是将内核分配的共享存储区域映射到进程的地址空间实现的,没有数据的复制过程,共享内存的访问速度要比消息队列快2. 共享内存模型开始---> 创建共享内存(shmget)--->映射共享内存(shm...原创 2014-07-28 17:02:32 · 97 阅读 · 0 评论 -
Select Poll and EPoll
[img]http://dl2.iteye.com/upload/attachment/0099/6049/67c21f14-8097-3b48-a63e-d0ae78f7fd80.png[/img]原创 2014-07-28 14:46:45 · 80 阅读 · 0 评论 -
虚函数,纯虚函数,抽象类
定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。C++纯虚函数一、定义 纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类...原创 2013-09-22 10:01:06 · 72 阅读 · 0 评论 -
虚函数的几个误区
纯虚函数1. C++ 子类没有实现父类的纯虚函数,则子类也变成抽象类,子类也不能实例化对象虚函数1. 定义一个函数为虚函数,不代表函数在此类中为不被实现的函数。2. 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。3. 定义一个函数为纯虚函数,才代表函数没有被实现。4. 基类中的虚函数必须加virtual 关键字,派生类可以省略,编译器会自动把派生类中...原创 2013-12-16 17:54:00 · 83 阅读 · 0 评论 -
C++对象创建和销毁的时机和顺序
根据变量的作用域(Scope)和其代表对象的生命期(Storage Duration)可将变量分为三种。 非局部变量: 定义在函数之外的变量,如全局作用域中的变量,命名空间作用域中的变量,类的静态成员变量。 局部静态变量: 定义在函数内的静态变量。 局部非静态变量: 定义在函数内的非静态变量。[color=blue][b]创建[/b][/color]...原创 2012-12-17 09:11:49 · 708 阅读 · 0 评论 -
NetBean 配置C/C++开发环境
http://aofengblog.blog.163.com/blog/static/6317021200810131175176/原创 2012-11-03 10:39:11 · 304 阅读 · 0 评论 -
linux network monitor
[code="java"]#include #include #include #include #include #include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static struct nf_hook_ops nfho...原创 2012-10-28 21:15:14 · 161 阅读 · 0 评论 -
Linux netfilter -----udp
[code="java"]#include #include #include #include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static struct nf_hook_ops nfho; //struct hol...原创 2012-10-28 09:23:56 · 497 阅读 · 0 评论 -
Linux netfilter example--1
[code="java"]#include #include #include #include #include MODULE_LICENSE("Dual BSD/GPL");static struct nf_hook_ops nfho; //struct holding set of hook function options//...原创 2012-10-28 08:51:43 · 88 阅读 · 0 评论 -
Linux kernal develop --1
1. install linux kernal source code yum install kernel-headers kernel-devel after install /usr/src/kernels/kernalversion is not null2. check your kernal version uname -r...原创 2012-10-27 09:27:10 · 74 阅读 · 0 评论 -
Linux 安装Libsqlora库函数
使用Linux下的OCI函数库必须先安装Libsqlora库函数。该库函数当前版本为libsqlora8-2.3.3可从http://www.poitschke.de/libsqlora8/index_noframe.html上下载libsqlora8-2.3.3.tar.gz源程序包。按以下步骤安装:[code="java"] #tar -xzvf libsqlora8-2.3.3...原创 2012-10-17 15:08:19 · 159 阅读 · 0 评论 -
Linux c 更新Oracle数据库
[code="java"]#include #include #include "sqlora.h"/* * */int main(int argc, char** argv) {sqlo_db_handle_t dbh;const char *cstr = "xia/pass123@TestDB";if (SQLO_SUCCESS != sq...原创 2012-10-17 14:38:33 · 102 阅读 · 0 评论 -
Linux c 查询Oracle数据库例子
[code="java"]/* * File: main.c * Author: oracle * * Created on October 11, 2012, 3:14 AM */#include #include #include "sqlora.h"/* * */int main(int argc, char** argv) {...原创 2012-10-17 10:23:52 · 273 阅读 · 0 评论 -
Void 指针 函数 和参数
1.void 的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:void a; 这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它...原创 2012-11-03 21:00:45 · 258 阅读 · 0 评论 -
重要函数及类型
1. 变量类型void *pid_tpthread_tpthread_mutex_tsem_tkey_tipcs -a , -q, -s, -m msqid_ds2. 函数fork()返回值为0子进程,不为0为父进程getpid()pthread_create(phread_t *restrict thread.......)...原创 2012-11-04 20:41:51 · 82 阅读 · 0 评论 -
指针的释放
使用 new 得来的空间,必须用 delete 来释放;使用 new [] 得来的空间,必须用 delete [] 来释放。彼此之间不能混用。用 new [] 分配出连续空间后,指针变量“指向”该空间的首地址。和指针变量相比, 数组没有一个单独的内存空间而存放其内存地址。即:指针变量p是一个独立的变量,只不过它的值指向另一段连续的内存空间;而数组arr,本身代表的就是一段连续空间。数组是“...原创 2012-12-14 16:37:48 · 832 阅读 · 0 评论 -
控制消息队列权限
[code="java"]#include #include #include #include #include #include #include #include typedef struct{long int nType;char szText[256];}MSG;int main(int argc, char** argv)...原创 2012-11-06 11:00:41 · 221 阅读 · 0 评论 -
接受消息队列
[code="java"]#include #include #include #include #include #include #include typedef struct{long int nType;char szText[256];}MSG;int main(int argc, char** argv) { key...原创 2012-11-05 10:59:40 · 79 阅读 · 0 评论 -
发送队列消息
[code="java"]#include #include #include #include #include #include #include /* * */typedef struct{long int nType;char szText[256];}MSG;int main(int argc, char** ar...原创 2012-11-05 10:53:16 · 79 阅读 · 0 评论 -
字符串函数处理例子
1. extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。举例:// memcpy.c[code="java"]...原创 2012-11-05 10:36:22 · 85 阅读 · 0 评论 -
线程与信号
[code="java"]#include #include #include #include #include /* * */void *product_f(void *arg);void *consumer_f(void *arg);sem_t sem;int running = 1;int main(void){ pthr...原创 2012-11-04 23:18:33 · 64 阅读 · 0 评论 -
线程间的互斥
[code="java"]#include #include #include #include #include #include /* * */void *product_f(void *arg);void *consumer_f(void *arg);int buffer_has_item = 0;pthread_mutex_t mute...原创 2012-11-04 22:24:58 · 58 阅读 · 0 评论 -
多线程例子一
[code="java"]#include #include #include #include #include /* * */static int run = 1;static int retvalue ;void *start_routine(void *arg){ int *running =arg; printf("chi...原创 2012-11-04 21:42:17 · 53 阅读 · 0 评论 -
C++析构函数为什么要为虚函数
1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代码[code="java"]#includeusing namespace std;cla...原创 2015-10-28 16:57:42 · 177 阅读 · 0 评论