glib相关函数
// function:回调函数名; data:是传入函数的参数; gpointer:是一个指针类似 void *;
//function会根据返回值来确定执行次数,当返回FALSE时,就不会再被调用了,如果返回TRUE,当当前线程空闲的时候又会被执行,而且反复执行
g_idle_add (GSourceFunc function, gpointer data);
// interval,超时时间,单位为 毫秒; function:回调函数名; 第三个参数data:传入回调函数的参数
//function,也是根据返回值来确定执行次数,返回FALSE时,就不会再被调用了,返回TRUE,则定时器又重新开始计时,超时后又开始调用了
g_timeout_add (guint interval, GSourceFunc function, gpointer data);
g_main_loop_new // 创建了一个loop对象
...
g_main_loop_run //当程序运行到这里,就进入了一个死循环,不过添加到loop中的逻辑还是在跑的,必须要有g_main_loop_quit()才能终止循环
eg:
gboolean function(gpointer data){
g_main_loop_quit(loop);
}
GMainLoop *loop = g_main_loop_new(NULL, FALSE);
g_timeout_add(5000, function, loop);
g_main_loop_run(loop);
file文件函数
// 参数1 filename-- 这是 C 字符串,包含了要打开的文件名称。
// 参数2 mode-- 这是 C 字符串,包含了文件访问模式,欲打开的文件路径及文件名,参数 mode 字符串则代表着流形态。
//"r"打开文字文件只读; "w"创建文字文件只写; "a"增补,如果文件不存在则创建一个;"r+" 打开一个文字文件读/写;
// "w+"创建一个文字文件读/写; "a+" 打开或创建一个文件增补; "b" 二进制文件(可以和上面每一项合用)
//
FILE *fopen(const char *filename, const char *mode);
// 关闭流 成功回0 失败为非0值
int fclose(FILE *stream);
//ptr:这是指向要被写入的元素数组的指针; size:这是要被写入的每个元素的大小,以字节为单位。
//nmemb:这是元素的个数,每个元素的大小为 size 字节; stream:这是指向 FILE 对象的指针,该FILE对象指定了一个输出流。
// 把ptr所指向的数组中的数据写入到给定流stream中。
// 返回值为实际写入数据项个数 nmemb
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
//fflush()会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新
int fflush(FILE *stream);
- 888
- 8888
- 888
- 88
参考链接:
- glib g_main_loop的简单例子 link