代码改变世界

随笔分类 -  Step By Step 系列

C 语言实现动态字符串

2011-12-16 20:55 by Haippy, 8013 阅读, 收藏, 编辑
摘要: 在C语言中,字符串是以连续的字节流表示的,并且以 '\0' 结尾,C语言标准库中也提供了很多函数来操作这种形式的字符串,比如,求字符串长度 strlen( ),求子串strstr( ),字符串拷贝strcpy( )等等,但是,这些函数并不安全,很可能给系统或应用程序带来严重的问题,如栈溢出等,C语言字符串中并没有记录操作系统为其分配的长度,用户必须自己将字符串长度保存在其他的变量中,很明显如果操作不当就会产生错误,如臭名昭著的缓冲区溢出。 阅读全文

Lex & Flex 词法分析器实践(未完,持续更新)

2011-10-10 23:38 by Haippy, 11880 阅读, 收藏, 编辑
摘要: Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具, Lex (最早是埃里克·施密特和 Mike Lesk 制作)是许多 UNIX 系统的标准词法分析器(lexical analyzer)产生程式,而且这个工具所作的行为被详列为 POSIX 标准的一部分。 阅读全文

巧用 python 脚本控制你的C程序

2011-09-17 22:02 by Haippy, 3019 阅读, 收藏, 编辑
摘要: python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为。 作为例子,本文将用 python 和 C 语言来编写示例代码,同时也会顺便介绍一下 利用 C 语言扩展 python的方法,最后会给出完整的 C 编写 python 模块的源码。 阅读全文