Rusty's code
@Dying in the rain.

随笔分类 -  C/C++

c语言fopen追加模式下fseek失效
摘要:用到编程改变文件某个字段的值,结果发现此现象。上代码:int writepcap(char *filename,int begin,int len,char *content){ if(!pcap || !content) return -1; FILE *fp = NULL; fp = fopen(filename,"ab");//rb+ if(!fp) return -2; if(-1 == fseek(fp,begin,SEEK_SET)) { fclose(fp); return -3; } //print... 阅读全文
posted @ 2011-11-17 19:27 Rusty's code 阅读(4641) 评论(0) 推荐(1)
Linux下C/C++查找某一进程
摘要:一、前言:要在程序中启动某一程序,如果程序已经存在了,就不再启动。查找了N篇文档,有所收获,总结一下。二、实现大体分两种:1、exec或popen执行ps的命令行,然后运用某几个字符串匹配函数。#include <stdio.h>#include <unistd.h>#include <string.h>#include <signal.h>int main(){ FILE *pstr; char cmd[128],buff[512],*p; pid_t pID; int pidnum; char *name= "ping"; 阅读全文
posted @ 2011-04-14 19:53 Rusty's code 阅读(16346) 评论(4) 推荐(0)
C语言条件编译及编译预处理阶段
摘要:一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代 阅读全文
posted @ 2011-03-27 12:20 Rusty's code 阅读(45769) 评论(15) 推荐(11)
C/C++程序到内存分配个人总结
摘要:一、一个由C/C++编译到程序占用的内存分为以下几个部分:1、栈区(stack)——由编译器自动分配释放,在不需要的时候自动清除。用于存放函数的参数、局部变量等。操作方式类似数据结构中的栈(后进先出)。2、堆区(heap)——一般由程序员分配释放,若程序员分配后不释放,程序结束后可能由OS回收。不同于数据结构中的堆,分配方式有些类似链表。3、全局区(静态区)——全局变量和静态变量存储在这里。程序结束后由系统释放。在以前到C语言中,全局变量又细分为初始化的(DATA段)和未初始化到(BSS段),在C++里已经没有这个区分了,它们共同占用同一块内存区。4、常量存储区——常量字符串就存放在这里。一般 阅读全文
posted @ 2011-03-21 20:36 Rusty's code 阅读(3786) 评论(3) 推荐(2)
C语言全局变量多文件使用
摘要:定义一个全局变量,想在多个文件中使用,代码如下://var.hextern int var ;//var.c#include"var.h"int var = 10;//otherA.c#include"var.h"//otherB.c#include"var.h"//otherC.c#include"var.h"只能在一个文件里面赋初值,否则链接出错。看到个C的题:全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?上面那种是不可以的,但是在前面加上static就可以了。加上static就是静态全局变量了 阅读全文
posted @ 2011-03-18 11:18 Rusty's code 阅读(21333) 评论(2) 推荐(0)
泛型函数的定义必须写在头文件?
摘要:“Compiling templates requires assistance from the programming environment. The language defines two broad strategies for instantiating templates: the inclusion model and the separate compilation model. These models have impacts on how we build our systems in so far as they dictate whether template d 阅读全文
posted @ 2011-03-18 09:12 Rusty's code 阅读(1634) 评论(1) 推荐(0)