Archive for 'programing'

关于在archlinux上安装oracle客户端,可参考wiki:https://wiki.archlinux.org/index.php/Oracle

访问Oracle数据库的C语言编程接口,比较常见的是PRO*C和oci,前者是一种以C语言作为宿主的预编译语言,后者则是一套现成的数据库访问API。比如,俺们公司的后台的一些重要系统现在主要以Oracle系列数据库为主,开发语言基本是C,pro*c和oci在项目中都有使用。一句话,PRO*C上手容易,编码简单,但受约束;oci直接以API形式调用,效率最高,但学习成本高,一般都会做二次封装(有个C++的封装库:OTL)。

本文主要说明在使用PRO*C时,如果需要定义局部sqlca变量时,该做哪些准备工作。

如果你的程序只使用全局的sqlca变量,那么 #include <sqlca.h> 就完事儿了,文章到此可以直接 return 0 。

› Continue reading…

Tags: , , ,

[转] Unicode和UTF-8

Unicode和UTF-8

一.各地的方言

首先说明一下现在常用的一些编码方案:
在中国,大陆最常用的就是 GBK18030 编码,除此之外还有 GBK , GB2312 ,这几个编码的关系是这样的。

  • 最早制定的汉字编码是 GB2312 ,包括 6763 个汉字和 682 个其它符号。
  • 95 年重新修订了编码,命名 GBK1.0 ,共收录了 21886 个符号。
  • 之后又推出了 GBK18030 编码,共收录了 27484 个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在 WINDOWS 平台必需要支持 GBK18030 编码。

按照 GBK18030 、 GBK 、 GB2312 的顺序,3种编码是向下兼容,同一个汉字在三个编码方案中是相同的编码。
2.台湾,香港等地使用的是 BIG5 编码
3.日本: SJIS 编码

› Continue reading…

Tags: ,

解决的方法有很多,Google一下那是一箩筐,这里只记录我使用的方法:

#content {

min-height:100px;

height:auto !important;

height:100px;

}

当div的高度超过100px时,就会自动扩展。

这么写的主要原因还是为了兼容ie6,希望能尽快淘汰之…

再说PPP中的pap和chap认证

转载自这里:http://gairuhe.blog.51cto.com/77728/39524

虽然原文是在路由上实验的,但也能然我们清楚的了解认证过程,作此记录。

PPP中的认证方式有pap和chap两种,这两种认证既可以单独使用也可以结合使用。并且既可以进行单向认证也可以进行双向认证。

1.pap是通过验证远端的用户名和密码是否匹配来进行验证;
2.chap则是发送一个挑战包,然后远端通过自己的数据库的用户名和密码利用md5进行计算后返还一个数值,然后在发送方验证这个数值是否和自己计算出来的数值是否一致进行验证.

› Continue reading…

Tags: , ,

之前只是一个人小改改,也没用版本控制,现在找了几个同学一起来维护现有的一个项目,于是用上了svn。

参考:http://www.debsir.org/main/?q=node/58

服务器是Debian3.1的系统,我用apache2和svn来搭建,先要安装相应的软件包:

apt-get install libapache2-svn apache2-mpm-prefork subversion

启动svn服务:

svnserve -d -r /home/svn/ “这是svn的主目录,根据自己的要求设置

› Continue reading…

Tags: ,

#line指令

#line指令

TAG:预编译和宏定义,ANSI C,#line

TEXT:
此命令主要是为强制编译器按指定的行号,开始对源程序的代码重新编号,在调试的时候,可以按此规定输出错误代码的准确位置。
形式1
语法格式如下:
# line constant “filename”
其作用是使得其后的源代码从指定的行号constant重新开始编号,并将当前文件的名命名为filename。例如下面的程序如下:
#include “stdio.h”
void Test();
#line 10 “Hello.c”
int main(int argc, char* argv[])
{
#define CONST_NAME1 “CONST_NAME1″
printf(“%s\n”,CONST_NAME1);
#undef CONST_NAME1
printf(“%s\n”,CONST_NAME1);
{
#define CONST_NAME2 “CONST_NAME2″
printf(“%s\n”,CONST_NAME2);
}
printf(“%s\n”,CONST_NAME2);
return 0;
}
void Test()
{
printf(“%s\n”,CONST_NAME2);
}
提示如下的编译信息:
Hello.c(15) : error C2065: ‘CONST_NAME1′ : undeclared identifier
表示当前文件的名称被认为是Hello.c, #line 10 “Hello.c”所在的行被认为是第10行,因此提示第15行出错。
形式2
语法格式如下:
# line constant
其作用在于编译的时候,准确输出出错代码所在的位置(行号),而在源程序中并不出现行号,从而方便程序员准确定位。

Tags:

gtk+中的国际化编程

嘿嘿,做一次标题党,其实是记录auto工具的使用.

先一句话介绍gettext: gettext提供了编程界面、实用工具,它帮助程序员编写支持多语言的应用程序。

gtk+的国际化编程,我现在接触的方法是用gettext,这个也是大众化的一种翻译方法.今天在automake的时候产生了困惑,就是如何将生成的mo文件自动拷贝到相应的目录.

› Continue reading…

Tags: , ,

glib提供了现成的存取配置文件的方法,glib中的key文件就像windows中的.ini文件一样,以下内容来自:http://www.gtkbook.com/tutorial.php?page=keyfile

Key File Structure

Key files in GLib are much like .ini files used on Microsoft Windows machines. Data is split into groups, where the name appears between square bracket characters, and comments are started by the pound character.

Key files, parsed by GKeyFile, keep track of strings, localized strings, Boolean values, integers, doubles, and lists of each of these data types. An example key file can be viewed below in Listing 1.

› Continue reading…

Tags: ,

coding的时候,得到的字符串是GBK的,gtk+显示就成了乱码,下面的内容可以帮助你如何转码.

主要介绍了使用以下两个函数将字符编码转换为UTF-8的编码格式,来自官方的常见问题解答:

http://library.gnome.org/devel/gtk/unstable/gtk-question-index.html

g_locale_to_utf8()
g_convert

› Continue reading…

Tags: ,

文章的出处不详.

摘要:
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。

关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)

› Continue reading…

Tags:
« Previous posts Back to top