随笔分类 -  C语言

摘要:(一)中已经介绍了使用strtok函数的一些注意事项,本篇将介绍strtok的一个应用并引出strtok_r函数。1.一个应用实例网络上一个比较经典的例子是将字符串切分,存入结构体中。如,现有结构体typedef struct person{ char name[25]; char sex[10]; char age[4];}Person;需从字符串 char buffer[INFO_MAX_SZ]="Fred male 25,John male 62,Anna female 16"; 中提取出人名、性别以及年龄。一种可行的思路是设置两层循环。外循环,先以 ',’ 阅读全文
posted @ 2012-02-10 10:34 姜戏◥⊙▲⊙◤郎 阅读(3565) 评论(0) 推荐(3) 编辑
摘要:strtok函数的使用是一个老生常谈的问题了。该函数的作用很大,争议也很大。以下的表述可能与一些资料有区别或者说与你原来的认识有差异,因此,我尽量以实验为证。交代一下实验环境是必要的,winxp+vc6.0,一个极端平民化的实验环境。本文中使用的源代码大部分来自于网络,我稍加修改作为例证。当然,本人水平有限,有不妥之处在所难免,各位见谅的同时不妨多做实验,以实验为证。strtok的函数原型为char *strtok(char *s, char *delim),功能为“Parse S into tokens separated by characters in DELIM.If S is NUL 阅读全文
posted @ 2012-02-10 10:11 姜戏◥⊙▲⊙◤郎 阅读(602) 评论(0) 推荐(0) 编辑
摘要:pipe.h 1 #ifndef _PIPE_H 2 #define _PIPE_H 3 4 int pipe_init(void); //初始化管道 5 int pipe_write_to_parent(void *buf, int len); //向父进程写数据 6 int pipe_write_to_child(void *buf, int len); //向子进程写数据 7 int pipe_read_from_parent(void *buf, int len); //读父进程数据 8 int pipe_read_from_chi... 阅读全文
posted @ 2011-12-12 19:57 姜戏◥⊙▲⊙◤郎 阅读(370) 评论(0) 推荐(1) 编辑
摘要:Linux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能:它使你能监视你程序中变量的值.它使你能设置断点以使程序在指定的代码行上停止执行.它使你能一行行的执行你的代码.以下演示一个example.c程序的调试过程:example.c文件内容如下, 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 void my_print1(c 阅读全文
posted @ 2011-09-02 21:08 姜戏◥⊙▲⊙◤郎 阅读(328) 评论(0) 推荐(0) 编辑
摘要:一. 回顾指针概念:当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。内存地址→6 78 9 10 111213 1415-------------------------------------------------------------------------------------…| ||||| ||||-------------------------------------------------------------------------------------|short i 阅读全文
posted @ 2011-08-02 21:38 姜戏◥⊙▲⊙◤郎 阅读(177) 评论(0) 推荐(0) 编辑
摘要:gdgn_526345发表于 2009-11-25 14:54linux 创建进程函数fork()返回值的疑问linux创建进程函数fork()正确调用一次的时候有两个返回值:子进程返回:0父进程返回:>0的整数(返回子进程ID号)而错误的时候返回-1而在介绍fork()函数时的应用例子一般都为以下结构:如下例:#include <sys/types.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>int main(void){ pid_t result; /*调用fork 阅读全文
posted @ 2011-06-22 10:19 姜戏◥⊙▲⊙◤郎 阅读(1450) 评论(1) 推荐(0) 编辑
摘要:makefile 里的函数跟它的变量很相似——使用的时候,你用一个 $ 符号跟开括号,函数名,空格后跟一列由逗号分隔的参数,最后用关括号结束。例如,在 GNU Make 里有一个叫 'wildcard' 的函 数,它有一个参数,功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。你可以像下面所示使用这个命令: SOURCES = $(wildcard *.c) 这行会产生一个所有以 '.c' 结尾的文件的列表,然后存入变量 SOURCES 里。当然你不需要一定要把结果存入一个变量。 另一个有用的函数是 patsubst ( patten substitude, 匹配替换的缩写) 阅读全文
posted @ 2011-01-11 09:34 姜戏◥⊙▲⊙◤郎 阅读(14475) 评论(0) 推荐(1) 编辑
摘要:ASCII码表信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。在7位ASCII字符集中,控制字符是从0(NUL)到0x1F(US)之间的字符和0x7F(DEL),可打印字符是从0x20(' ')到0x7E('~')之间的字符。八进制十六进制十进制字符八进制十六进制十进制字符00000nul1 阅读全文
posted @ 2010-12-02 11:29 姜戏◥⊙▲⊙◤郎 阅读(480) 评论(0) 推荐(0) 编辑
摘要:在linux下遍历某一目录下内容LINUX下历遍目录的方法一般是这样的打开目录->读取->关闭目录相关函数是opendir -> readdir -> closedir,其原型如下:#include <dirent.h>DIR *opendir(const char *dirname);struct dirent *readdir(DIR *dirp);int ... 阅读全文
posted @ 2010-09-09 18:02 姜戏◥⊙▲⊙◤郎 阅读(8527) 评论(1) 推荐(0) 编辑
摘要:一般在C语言输出函数中,可以使用printf("%3.0f %6.1f\n",a,b)的形式对输出的字符串,数据进行格式化处理,以下简单举例说明:%d 按照十进制整型数打印%6d 按照十进制整型打印,至少6个字符宽%f 按照浮点数打印%6f 按照浮点数打印,至少个字符宽%.2f 按照浮点数打印,小数点后有两位小数%6.2f 按照浮点数打印,至少6个字符宽,小数点后有两位小数.%e  浮点数指数输出[e-(E-)记数法],科学记数法%g  浮点数不显无意义的零"0"此外,printf函数还支持下列格式说明:%o表示八进制;%x表示十六进制;%c表示字符;%s表示字符串;%%表示百分号()本身题外 阅读全文
posted @ 2010-07-15 19:22 姜戏◥⊙▲⊙◤郎 阅读(300) 评论(2) 推荐(0) 编辑