C语言和HTTP的一点东西
我貌似并不像自认为的那样乐于助人。。。之前有过几个人来问我怎么用C语言发送HTTP的GET或者POST请求,我都一概回答i dunno。。。直到今天我突然有兴趣想了解一下的时候,才去google了一把。。。
很简单的东西,知道curl吧,有一个libcurl,就是要用它了。。。
#include <curl/curl.h> int main(int argc, char *argv[]) { const char *url = "http://abitno.linpie.com"; CURL *curl; CURLcode res; if (curl = curl_easy_init()) { res = curl_easy_setopt(curl, CURLOPT_URL, url); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } return 0; }
从1m15.605s到0m0.053s
事情源于昨天晚上butterfly的一个问题:找出一个文本文件中最长的一行,Find the longest line in a text file
由于我上大学后一些错误的观念,所以对算法极其的不重视。现在我所做的就是从头开始顺序读取,然后使用不同的编程语言看看效果。还是先看看結果吧:
环境:文件list.txt是一个16M的纯文本,测试的编程语言(当然有些不能说是编程语言)包括bash、ruby、gawk、python、wc、C(C写出来的效率竟然是wc命令的10多倍)
顺序:从最慢的bash到最快的C
1、BASH脚本
#FILE: long.sh, Author: ABitNo #!/bin/bash max=0 while read line; do if [ ${#line} -gt $max ]; then max=${#line} longest=$line fi done echo $max, $longest exit 0
用GTK的GtkTreeView实现表格
本文是用GTK和MySQL完成学生信息管理系统的第三部分
这里不打算讲GTK的基本用法,因为GTK的官方已经有很好的文档了,我比较推荐的是The GTK+ tutorial,上面说的都很详细,另外官方的文档也应该要看一下的。
现在这个程序依然是要用C语言来实现,当然GTK还可以与其他语言(Python, Ruby, C++等)来配合,如果不明白C语言应该也可以看懂其中的含义。下面就列出关键的一段代码
void append_values_to_list(GtkWidget *list,
gint *colums,
GValue *values,
gint num_column) {
GtkListStore *store;
GtkTreeIter iter;
store = GTK_LIST_STORE(gtk_tree_view_get_model
(GTK_TREE_VIEW(list)));
gtk_list_store_append(store, &iter);
gtk_list_store_set_valuesv(store, &iter, colums, values, num_column);
}
Linux下C语言连接MySQL
本文是用GTK和MySQL完成学生信息管理系统的第二部分。
这次就不啰嗦了,直接入正题,用一个简单的实例讲解在Linux下用C语言操作MySQL
1、创建示例数据库和数据表
CREATE DATABASE abitno; USE abitno; CREATE TABLE abitno ( name VARCHAR(10) NOT NULL, site VARCHAR(50) NOT NULL );
上面新建了一个示例数据表abitno,都是最基本的SQL。
2、垒代码
数据库的基本操作就是INSERT, UPDATE, DELETE, SELECT,下面就介绍一下,其中INSERT, UPDATE, DELETE是一样的,因为这三个都是对数据进行了操作,并不期望有什么数据返回,所以ABitNo用同一个函数exe_sql来实现这三个操作;对于SELECT,ABitNo写了另一个方法query_sql. 下面就把代码列出来,有注释,不明白的ABitNo愿意解答。
Glade 3与GTK+-2入门
本文是用GTK和MySQL完成学生信息管理系统的第一部分
GTK是完全按照面向对象思想设计的一套组件,如果你用过java的Swing那就应该会很容易的理解这个东西。按我现在的水平,我只当GTK就是些图形组件。Glade是可以让你用拖拽的方式来给GTK这些组件进行布局的,用过Netbeans进行Swing设计的应该会明白,当然如果你用过垃圾的VC(ABitNo坚决讨厌这些东西)什么的也会明白。不过不明白也没关系,下面就一切从0开始讲解。
现在ABitNo假设读者会用c,gcc,make。不过不会的话还是没有关系,下面会把每一步需要的命令都列出来。
1、准备开发环境
Linux,GTK+-2,Glade 3.6,gcc,make,Glib2,MySQL
上面这些东西并不是现在就都会用到,是以后的文章中会用到的。由于这些都不是重点,所以就不详细介绍了,如有不明白的就留言,ABitNo愿意帮忙。
2、认识Glade
当你打开Glade3时,会出现一个Unsaved 1的对话框,这个是让你选择现在这个Project的一些基本属性。这里就按照默认的,不要修改。
