<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[tomotoboy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/tomotoboy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; tomotoboy]]></copyright><item><title><![CDATA[ORACLE-约束]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83602113</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83602113</guid><author>tomotoboy</author><pubDate>Mon, 19 Apr 2010 14:05:09 +0800</pubDate><description><![CDATA[[code=&quot;PL/SQL&quot;]CREATE TABLE	CUSTER_ORDER
(
ORDER_NUMBER NUMBER(6)	PRIMARY KEY,
ORDER_DATE			DATE 	NOT NULL,
DELIVERY_DATE			DATE	DATE,
WAREHOURE_NUMBER		NUMBER	DEFACULT 12,
CUSTOMER_NUMBER		NUMB...]]></description><category></category></item><item><title><![CDATA[@@FETCH_STATUS]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83485283</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83485283</guid><author>tomotoboy</author><pubDate>Tue, 03 Nov 2009 11:46:59 +0800</pubDate><description><![CDATA[@@FETCH_STATUS
返回被 FETCH 语句执行的最后游标的状态，而不是任何当前被连接打开的游标的状态。
返回值描述
0FETCH 语句成功。
-1FETCH 语句失败或此行不在结果集中。
-2被提取的行不存在。
语法
@@FETCH_STATUS
返回类型
integer
注释
由于 @@FETCH_STATUS 对于在一个连接上的所有游标是全局性的，要小心使用 ...]]></description><category></category></item><item><title><![CDATA[Berkeley套接字的一些基本知识]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83482269</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83482269</guid><author>tomotoboy</author><pubDate>Sun, 25 Oct 2009 00:46:22 +0800</pubDate><description><![CDATA[一、首先看一下Berkeley Socket实现TCP和UDP协议的流程
1.面向连接的TCP
[align=center][img]http://dl.iteye.com/upload/attachment/160430/d016d948-ff9b-3c51-8dd5-fbf138489b27.jpg[/img][/align]

2.无连接的UDP
[align=center][im...]]></description><category></category></item><item><title><![CDATA[Rakefile格式介绍]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83481751</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83481751</guid><author>tomotoboy</author><pubDate>Fri, 23 Oct 2009 11:16:51 +0800</pubDate><description><![CDATA[Rakefile格式

尚在翻译中……]]></description><category></category></item><item><title><![CDATA[进程间通信——共享内存]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83471072</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83471072</guid><author>tomotoboy</author><pubDate>Sun, 18 Oct 2009 15:02:56 +0800</pubDate><description><![CDATA[共享内存(Shared Memory)
共享内存，简单的说就是被多个进程共享的内存。它在各种进程通信方法中是最快的，因为它是将信息直接映射到内存中，

省去了其它 IPC方法的中间步骤。
1.shmid_ds
共享内存也有一个给系统内存用来保存相关信息的机构，就是shmid_ds。
[code=&quot;c&quot;]struct shmid_ds{
struct ipc_perm shm_perm...]]></description><category></category></item><item><title><![CDATA[进程间通信——信号量]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83470531</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83470531</guid><author>tomotoboy</author><pubDate>Fri, 16 Oct 2009 15:35:18 +0800</pubDate><description><![CDATA[有关结构体
1.sem
[code=&quot;c&quot;]struct sem {
                 short   sempid;        /* pid of last operation */
                 ushort  semval;        /* current value */
                 ushort  semncnt...]]></description><category></category></item><item><title><![CDATA[java中的高速缓存和连接池对访问数据库性能的影响]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83470060</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83470060</guid><author>tomotoboy</author><pubDate>Thu, 15 Oct 2009 15:13:30 +0800</pubDate><description><![CDATA[转载于：[url=http://hi.baidu.com/mailxlei/blog/item/02c307dbd6a2966fd0164e15.html]该地址非原地址，我是从其主页上转载而来的[/url]
一.初识高速缓存和连接池 

设想这样一种情形：你突然口渴，需要一杯水来缓解，从心情上来讲，当然是越快越好 了。通常，一杯水的产生包括从水源（井水、河水或江水、甚至海水等）抽取，通过管...]]></description><category></category></item><item><title><![CDATA[进程间通信——消息队列]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83467253</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83467253</guid><author>tomotoboy</author><pubDate>Thu, 08 Oct 2009 21:41:36 +0800</pubDate><description><![CDATA[原文地址：[url]http://hi.baidu.com/monalisa88188/blog/item/f5c52122e42ff84dac34de74.html[/url]
[b][size=medium]一、消息队列的基本概念[/size][/b]
    消息队列是一个存放在内核中的消息链表，每个消息队列由消息队列标识符标识。与管道不同的是消息队列存放在内核中，只有在内核重启（即操作...]]></description><category></category></item><item><title><![CDATA[linux/unix锁]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83466979</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83466979</guid><author>tomotoboy</author><pubDate>Wed, 07 Oct 2009 19:54:24 +0800</pubDate><description><![CDATA[[size=medium][b]锁定中的几个概念[/b][/size]
     文件锁定的是整个文件，而记录锁定只锁定文件的某一特定部分。UNIX 的记录指的是从文件的某一相对位置开始的一段连续的字节流，它不同于其它以强制性记录结构阻止文件的操作系统，因此，UNIX 记录锁更恰当的称呼应该是范围锁，它是对文件某个范围的锁定。

     文件和记录锁定可分为咨询式锁定和强制锁定两种。当正在...]]></description><category></category></item><item><title><![CDATA[向脚本传递参数]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83452602</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83452602</guid><author>tomotoboy</author><pubDate>Fri, 21 Aug 2009 16:18:55 +0800</pubDate><description><![CDATA[[b][size=medium]shift命令[/size][/b]
向脚本传递参数时，有时需要将每一个参数偏移以处理选项，这就是 shift命令的功能。它每次将参数位置向左偏移一位，下面用一段简单脚本详述其功能。脚本使用 while循环反馈所有传递到脚本的参数。使用shift命令来处理传递到脚本的每一个参数：
[code=&quot;shell&quot;]
#!/bin/sh
loop=0
while ...]]></description><category></category></item><item><title><![CDATA[文件共享]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83441320</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83441320</guid><author>tomotoboy</author><pubDate>Fri, 14 Aug 2009 14:58:29 +0800</pubDate><description><![CDATA[UNIX支持在不同进程间共享打开文件，本文主要对以下几个方面简单介绍：
[list]
[*]原子操作；
[*]再次介绍dup与dup2；
[*]fcntl函数;
[*]ioctl函数；
[*]/dev/fd;
[/list]
[size=medium][b]1.介绍一下内核用于所有I/O的数据结构[/b][/size]
内核使用了三种数据结构，它们之间的关系决定了在文件共享方面一...]]></description><category></category></item><item><title><![CDATA[文件I/O]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83440592</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83440592</guid><author>tomotoboy</author><pubDate>Thu, 13 Aug 2009 02:06:23 +0800</pubDate><description><![CDATA[本文将对UNIX系统的文件I/O的以下几点作出总结：
[list]
[*]文件描述符
[*]open()函数
[*]read()函数
[*]write()函数
[*]lseek()函数
[*]close()函数
[/list]
[b]术语——不带缓存指的是每个 read和write都调用内核中的一个系统调用。[/b]

[b]文件描述符[/b]
对于内核而言，所有打开文件都...]]></description><category></category></item><item><title><![CDATA[进程间通信——管道]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83440584</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83440584</guid><author>tomotoboy</author><pubDate>Thu, 13 Aug 2009 00:02:30 +0800</pubDate><description><![CDATA[[size=medium][b]1.匿名管道[/b][/size]
匿名管道创建的四种方法
[list]
[*]使用pipe()函数
[*]使用dup()函数
[*]使用dup2()函数
[*]使用popen()/pclose()函数
[/list]

[b]dup()函数[/b]
有时候我们需要将子进程当中的管道的句柄定向到标准 I/O（stdin/stdout）上去。这样，...]]></description><category></category></item><item><title><![CDATA[进程间通信——系统调用setjmp()与longjmp()]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439616</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439616</guid><author>tomotoboy</author><pubDate>Mon, 10 Aug 2009 23:05:36 +0800</pubDate><description><![CDATA[[b]系统调用setjmp()和 longjmp()[/b]
有时候，当接收到一个信号时，希望能跳回程序中以前的一个位置执行。例如，在有的程序内，当用户按了中断键，则程序跳回到显示主菜单执行。我们可以用库系统调用setjmp()和 longjmp()来完成这项工作。setjmp()能保存程序中的当前位置（是通过保存堆栈环境实现的），longjmp()能把控制转回到被保存的位置。在某种意义上，lo...]]></description><category></category></item><item><title><![CDATA[进程间通信——信号]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439370</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439370</guid><author>tomotoboy</author><pubDate>Mon, 10 Aug 2009 13:21:33 +0800</pubDate><description><![CDATA[信号类型
信号类型在[url=http://tomotoboy.iteye.com/admin/blogs/438130]Trap命令详解[/url]中有详细的介绍

[b]信号捕捉[/b]
示列程序实现对SIGINT的捕捉
[code=&quot;c&quot;]#include 
#include 
#include 
int catch(int sig);
int main(void)
{...]]></description><category></category></item><item><title><![CDATA[shell函数]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439208</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439208</guid><author>tomotoboy</author><pubDate>Mon, 10 Aug 2009 00:18:35 +0800</pubDate><description><![CDATA[函数由两部分组成：
[list]
[*]函数标题。
[*]函数体。
[/list]
标题是函数名。函数体是函数内的命令集合。标题名应该唯一；如果不是，将会混淆结，因为脚本在查看调用脚本前将首先搜索函数调用相应的 s h e l l。
定义函数的格式为：
[code=&quot;shell&quot;]函数名（）
{ 
命令1
. . .
}
或者
function 函数名（）
{   .....]]></description><category></category></item><item><title><![CDATA[后台执行命令——守护进程创建]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439153</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439153</guid><author>tomotoboy</author><pubDate>Sun, 09 Aug 2009 19:05:29 +0800</pubDate><description><![CDATA[当你在终端或控制台工作时，可能不希望由于运行一个作业而占住了屏幕，因为可能还有更重要的事情要做，比如阅读电子邮件。对于密集访问磁盘的进程，你可能希望它能够在每天的非负荷高峰时间段运行。为了使这些进程能够在后台运行，也就是说不在终端屏幕上运行，有几种选择方法可供使用：
[list]
[*]设置crontab文件，并用它来提交作业。
[*]使用at命令来提交作业。
[*]在后台提交作业。
[...]]></description><category></category></item><item><title><![CDATA[进程控制——进程环境]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439107</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439107</guid><author>tomotoboy</author><pubDate>Sun, 09 Aug 2009 14:49:49 +0800</pubDate><description><![CDATA[[size=medium][b]进程环境[/b][/size]
进程的环境是一个以 NULL 字符结尾的字符串之集合。在程序中可以用一个以 NULL结尾的字符型指针数组来表示它。系统规定，环境中每个字符串形式如下：
[code=&quot;shell&quot;]name=somethin[/code]
Linux 系统提供了 environ 指针，通过它我们可以在程序中访问其环境内容。在使用 environ ...]]></description><category></category></item><item><title><![CDATA[什么时候需要JSON]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83439091</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83439091</guid><author>tomotoboy</author><pubDate>Sun, 09 Aug 2009 14:03:27 +0800</pubDate><description><![CDATA[有时候 JavaScript 不仅仅作为格式化语言使用。在这些情况下，实际上使用 JavaScript 语言中的对象来表示数据，而不仅是将来自 Web 表单的数据放进请求中。在这些情况下，从 JavaScript 对象中提取数据，然后再将数据放进名称/值对或 XML，就有点儿多此一举 了。这时就合适使用 JSON：JSON 允许轻松地将 JavaScript 对象转换成可以随请求发送的数据（同步或...]]></description><category></category></item><item><title><![CDATA[三大主流ETL工具选型]]></title><link>https://blog.youkuaiyun.com/tomotoboy/article/details/83438963</link><guid>https://blog.youkuaiyun.com/tomotoboy/article/details/83438963</guid><author>tomotoboy</author><pubDate>Sat, 08 Aug 2009 20:51:43 +0800</pubDate><description><![CDATA[原文地址：[url]http://hi.baidu.com/mcj0127/blog/item/a0a61dee39d325f2b2fb959d.html[/url]

ETL（extract, transform and load）产品乍看起来似乎并不起眼，单就此项技术本身而言，几乎也没什么特别深奥之处，但是在实际项目中，却常常在这个环节耗费太多的人力，而在后续的维护工作中，更是往往让人伤透...]]></description><category></category></item></channel></rss>