C开发CGI以及sqlite数据库http://www.liniu.cn/post/c-cgi-sqlite.html
2008-02-29 22:28
309 查看
台湾的地震把海底光缆弄断了,现在上外国网几乎连不上。blogger也连不上,load下来一个title就不动了。还好Gmail可以用,可以用来发布blog,不过我的blog网站在国内blogger的服务器能发布进来么?天知道。
这几天在写C程序,很多资料都要到国外站点查,现在全都不能查了,郁闷。现在在用C写CGI,其实C很强大的。完成的CGI的也不比perl复杂,主要就是C的字符处理函数比较弱,不过可以用第三方的库来支援。我现在用的就是CGIC这个库,很小只有一个头文件和一个C文件,可以很方便的处理表单。数据库用的是sqlite,这里不得不重点提一下sqlite数据库,这是一个轻量级的数据库,从名字上就看的出来,lite的sql。但是功能一点都不lite。按 官方网站上的说法(国内也有相应的站点),它的特点是:易于管理,易于使用,易于嵌入其他大型程序,易于维护和配置 作为数据库引擎SQLite适用于中小规模流量的网站(也就是说, 99.9%的网站). SQLite可以处理多少网站流量在于网站的数据库有多大的压力. 通常来说, 如果一个网站的点击率少于100000次/天的话, SQLite是可以正常运行的. 100000次/天是一个保守的估计, 不是一个准确的上限. 事实证明, 即使是10倍的上述流量的情况下SQLite依然可以正常运行. 感觉上做网站用Sqlite是再好不过的了。轻量级,很好移植。到官方主页下载源码,用gcc编译。然后就可以调用了。使用下来感觉到几个比较好的地方:1) sql语句支持类似ADO.NET中command这样的东东,可以支持?这样的通配符,通配符变量,在后面赋值,这样C语言就不必做字符串的链接了,好处不言而喻,因为C语言处理字符很麻烦,要防止溢出,分配内存什么的。这里我就不举例子了,后面会把我用C写的CGI程序代码公开。2)分页非常方便,web程序分页经常用到,分页是个大问题。sqlite支持这样的语法select * from table limit a offset b ,这里limit后面就是要返回的记录数目,offset是偏置,就是从那里开始查询,是不是非常好,即简单,有高效,每次查询只查需要的记录,而不会查询所有的记录。3)就是非常好移植,C语言调用静态库的话,无需任何依赖,目标代码在web服务器上就可以运行了。 说了这么多sqlite的好处,总结一下C语言写CGI要用到的几个比较好的库,
1.CGIC,ANSI C的CGI库 http://www.boutell.com/cgic/
2.Sqlite,ANSI C的小型数据库 http://www.sqlite.org
3.GD库,C语言的 图形库 http://www.boutellcom/gd/
这几天在写C程序,很多资料都要到国外站点查,现在全都不能查了,郁闷。现在在用C写CGI,其实C很强大的。完成的CGI的也不比perl复杂,主要就是C的字符处理函数比较弱,不过可以用第三方的库来支援。我现在用的就是CGIC这个库,很小只有一个头文件和一个C文件,可以很方便的处理表单。数据库用的是sqlite,这里不得不重点提一下sqlite数据库,这是一个轻量级的数据库,从名字上就看的出来,lite的sql。但是功能一点都不lite。按 官方网站上的说法(国内也有相应的站点),它的特点是:易于管理,易于使用,易于嵌入其他大型程序,易于维护和配置 作为数据库引擎SQLite适用于中小规模流量的网站(也就是说, 99.9%的网站). SQLite可以处理多少网站流量在于网站的数据库有多大的压力. 通常来说, 如果一个网站的点击率少于100000次/天的话, SQLite是可以正常运行的. 100000次/天是一个保守的估计, 不是一个准确的上限. 事实证明, 即使是10倍的上述流量的情况下SQLite依然可以正常运行. 感觉上做网站用Sqlite是再好不过的了。轻量级,很好移植。到官方主页下载源码,用gcc编译。然后就可以调用了。使用下来感觉到几个比较好的地方:1) sql语句支持类似ADO.NET中command这样的东东,可以支持?这样的通配符,通配符变量,在后面赋值,这样C语言就不必做字符串的链接了,好处不言而喻,因为C语言处理字符很麻烦,要防止溢出,分配内存什么的。这里我就不举例子了,后面会把我用C写的CGI程序代码公开。2)分页非常方便,web程序分页经常用到,分页是个大问题。sqlite支持这样的语法select * from table limit a offset b ,这里limit后面就是要返回的记录数目,offset是偏置,就是从那里开始查询,是不是非常好,即简单,有高效,每次查询只查需要的记录,而不会查询所有的记录。3)就是非常好移植,C语言调用静态库的话,无需任何依赖,目标代码在web服务器上就可以运行了。 说了这么多sqlite的好处,总结一下C语言写CGI要用到的几个比较好的库,
1.CGIC,ANSI C的CGI库 http://www.boutell.com/cgic/
2.Sqlite,ANSI C的小型数据库 http://www.sqlite.org
3.GD库,C语言的 图形库 http://www.boutellcom/gd/
相关文章推荐
- 用 Eclipse 和 Ant 进行 Python 开发http://www-128.ibm.com/developerworks/cn/opensource/os-ecant/index.html
- Delphi开发嵌入式IE浏览器监控程序http://www.pasou.cn/edu/html/List3899_3.html
- Linux 内核开发之网络设备驱动http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/index.html
- 鉴于本人的经验,我不推荐使用sqlite for wp. Windows Phone(二) WP7数据库连接(SQLite数据库) 转:http://www.cnblogs.com/ry123/archive/2012/05/31/2528281.html
- 微信支付开发若干问题总结,API搞死人(谢谢ζั͡ޓއއއ๓http://www.thinkphp.cn/code/1620.html)血淋淋的教训,第二次栽这里了
- 纯div+css实现下拉菜单 http://www.zhangmeigong.cn/post/xiala.html
- http://www.y-liang.cn/post-50.html
- Android 开发工具集合 http://www.androiddevtools.cn/
- NOKIA各机型相对应操作系统平台及屏幕参数http://www.nokiacn.net/thread-213829-1-1.html
- 滚动图片效果 (从盛大 http://www.snda.com/cn/joinsnda/grow.html 抠下来的)
- Linux音频编程指南(转自http://www.ibm.com/developerworks/cn/linux/l-audio/index.html#author 作者 肖文鹏)
- 嵌入式数据库系统Berkeley DB http://www.ibm.com/developerworks/cn/linux/l-embdb/index.html
- http://www.ibm.com/developerworks/cn/linux/theme/kernel/index.html
- http://www.myexception.cn/mysql/2040843.html
- WebBrowser组件和MSHTML 在Delphi中的使用---转自 http://www.hackpig.cn/post/294.html
- http://www.chengxuyuan.com/post/1838.html?ref=myread
- http://www.dataguru.cn/article-1602-1.html
- Java Servlet 和 JSP教程(1)(http://www.wangchao.net.cn/bbsdetail_547177.html)
- 对话UNIX(from:http://www.ibm.com/developerworks/cn/aix/lp/speakingunix.html)
- 软件测试管理系统的设计与开发 (详细全文见:http://www.docin.com/p-1908800770.html)