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;
}

READ MORE>>

从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

READ MORE>>

Glade3&Ruby&GtkBuilder小示例

这篇文章主要内容:首先通过Glade3的GtkBuilder引擎设计好程序的GTK界面,然后在Ruby代码中调用这个glade文件来进行GTK+程序设计,最終結果是个小小的计算器。

calculate-of-abito-linpie-com
右边那个就是最終效果图,样子还算不错。

ABitNo开始啰嗦,不喜欢啰嗦的可以直接到后面看代码

其实事情是由于ABitNo这两天给自己放假休息,今天下午醒来后发现没什么东西要做就写了这么个东西。代码很简陋,不过功能考虑的还算是周全的,异常也应该都处理了,到最后看一下代码就几十行,Ruby果然是对Programmer相当友好。

如果用C或者Java什么的来写的话,不考虑界面因素,代码也会多出不止几十行来。如果有牛人欢迎来鄙视我,教育ABitNo一下。

READ MORE>>

用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);
}

READ MORE>>