坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Tag Archives: c

普及帖:Linux 下编译C程序

GNU 编译器集(其前身为GNU C 编译器)诞生于1987年。当时Richard Stallman(GNU 项目的创办人)想要创建一个编译器,它可以满足他定义的“自由软件”概念,并可用来编译 GNU 项目发布的其他软件。GNU C 编译器迅速在自由软件社区中流行开来,而且以其健壮性和可移植性而闻名。它已成为许多集成开发工具的基础,被世界各地的发行商应用在 Linux 和其他操作系统之上。   GCC 已不再是主要针对GNU项目自身的软件的小型 C 语言编译器了。如今,它已支持了许多不同的语言,包括 C、C++、Ada、Fortran、Objective C,甚至还有Java。事实上,现代 Linux 系统除了可以自豪地炫耀那些由 GNU 工具直接支持的语言以外,它还支持大量其他语言。日益流行的脚本语言 Perl、Python 和 Ruby,以及正在不断发展的mono 可移植C#实现的确有助于冲淡人们对 Linux 编程的传统看法,但这完全是另外一个问题了。 Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。 1. 编译单个源文件 为了进行测试,你可以创建“Hello World”程序: #include …

Continue reading

Posted in linux | Tagged , | 3 Comments

坐阵杭州淘宝

照片欠奉。 涉及到技术转型,看到一句话,共勉。 如果程序语言是宗教,那么: C语言是犹太教,Java是基督教,c++是回教. C#是摩門教,LISP是禪宗佛教,PHP是Cafeteria基督教,Haskell是道教,Erlang是印度教,Perl是伏都教,Lua是巫术,Ruby是新异教主义,Python是世俗人文主义,COBOL是古异教主义,APL是山达基教,Visual Basic是撒旦教。

Continue reading

Posted in 生活备份 | Tagged , , | 4 Comments

究竟什么是TSRMLS_CC?

翻译:54chen.com 原文地址:http://blog.libssh2.org/index.php?/archives/22-What-the-heck-is-TSRMLS_CC-anyway.html 如果你曾经做过php内核或者是php扩展方面的工作,你一定见到过这个到处都是的结构,但是却从来没有人提起过它。知道这是什么的人典型回答不知道的人都会这样说:“不用管它是什么,只需要在这里、这里还有这里用,如果编译器说少一个tsrm_ls,就加一个...”。这样回答并非都是因为这个人懒惰(的确是有一点点懒),其实那只是在说引擎甚至可以不管这个神奇的值在简化什么,这是因为一个新入门的扩展开发者知道它的结构没有什么益处。这信息就像奶牛的意见一样,没关系,就是牛叫而已。 既然我喜欢听自己喋喋不休的无意义主题(这个月我已经少写很多博客了),我想我得弥补这一主题,看看会不会有人通过他能领会什么。你可以责怪Lukas(Lukas Smith 是 PEAR DB 的主要作者应该是这个Lukas,译者注),他让我一直在planet-php.net上。 术语 TSRM Thread Safe Resource Manager - 这是一个经常被忽视的层面,就会有也是很少被讨论到,在你的PHP源代码包中,它被隐藏在/TSRM目录中。默认情况下,TSRM 层只在编译需要它的SAPI的时候才会打开(例如apache2-worker)。所有的在win32下编译的SAPI都会有TSRM层而不会管它们是否需要。 ZTS Zend Thread Ssafety -通常情况下,与TSRM有相同的用处。具体

Continue reading

Posted in php, 资料文档 | Tagged , , , | 10 Comments

sscanf函数的各种用法

sscanf是一个运行时函数,原形很简单:  int sscanf(  const char *buffer,  const char *format [,  argument ] ...  );  它强大的功能体现在对format的支持上。  sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。      char str[512] = ;    sscanf("123456 ", "%s", str);    printf("str=%s", str); 输出 str=123456     sscanf("123456 ", "%4s", str);    printf("str=%s", str); 输出 str = 1234   sscanf("123456 abcdedf", "%[^ ]", str);    printf("str=%s", str); 输出 str=123456 (遇到空格为止)   sscanf("123456abcdedfBCDEF", "%[^A-Z]", str);    printf("str=%s", str); 输出 str=123456abcdef (遇到指定字符为止) …

Continue reading

Posted in linux, php | Tagged , , , | Leave a comment

linux下系统托盘的实现

[文章作者:陈臻 本文版本:v1.0 最后修改:2006.10.13 转载请注明原文链接:http://www.54chen.com/c/24] 在gnome中国的网页上找到这个内容,他们把它叫做“通知功能图标”。它是一个在未来版本中决定发布的已实现包。 http://www.gnome-cn.org/documents/tutorial/system-tray-icon-application/implement-your-tray 具体实现前需要在下载两个开发补丁源文件,然后包含头文件到你的文件中。 具体代码: void create_tray (tray_demo * tray) { GtkWidget *image; GtkWidget *event_box; GtkTooltips *tooltips; EggTrayIcon *tray_icon; tooltips = gtk_tooltips_new (); tray_icon = egg_tray_icon_new ("Tray icon demo"); event_box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (tray_icon), event_box); …

Continue reading

Posted in WEB相关 | Tagged , , | Leave a comment