2009年9月17日木曜日

gcc=?ISO-2022-JP?B?GyRCOEA4bDNIRCUbKEI=?=

#include <sys/types.h>
#include <unistd.h>
#include <limits.h>

#define HW1 "Hello, world!\n"
#define HW2 "Hello, world!\nHello, world!\n"

#define PRINTIT(args...) printf(args)

inline long
getnum(int argc, char *argv[]) __attribute__((always_inline));

int
main(int argc, char *argv[])
{
__label__ retok, retfailed;
int num = getnum(argc, argv);
char buf[strlen(HW1)*num + 1];
typeof(&buf[0]) formstr(char *buf, int n) {
buf[0] = '\0';
char *hw;
switch (n & 1) {
case 1 ... 1:
hw = HW1;
break;
case 0 ... 0:
n >>= 1;
hw = HW2;
break;
}
while (n-- > 0)
strcat(buf, hw);
return buf;
}
void *addr = &&retok;
char *cp = formstr(buf, num) ? : ({addr = &&retfailed; "Failed\n";});
PRINTIT(cp);
goto *addr;

retfailed:
return -1;
retok:
return 0;
}

long
getnum(int argc, char *argv[])
{
return ({long ret = 1;
if (argc > 1) {
ret = strtol(argv[1], (char**)NULL, 10);
if (ret < 0 || ret == LONG_MAX || ret == LONG_MIN)
ret = 0;
}
ret;});
}
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/index.html

2009年8月31日月曜日

chroot=?ISO-2022-JP?B?GyRCJEskRCQkJEYbKEI=?=

chrootとは、UNIXオペレーティングシステムにおいて、現在のプロセスとその子プロ
セス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別
のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできな
くなるため、この操作をchroot監獄などとも呼ぶ。"chroot" は chroot(2) システム
コールおよび chroot(8) コマンドを意味する。

2009年8月30日日曜日

This widget has successfully logged in! Replace this text with your
first post.
<br class="khtml-block-placeholder">
<br class="khtml-block-placeholder">
You can use ⌘-B and ⌘-I to make text <b>bold</b> and
<i>italic</i>.

2009年8月25日火曜日

关 于C语言的函数指针

&#38382;&#39064;:&#35843;用存&#20648;地址从0&#24320;始的一段程序
(*(void(*)()0)();

由来:
函数指&#38024;的定&#20041;:void(*pFunction)(); 指&#38024;函数的原型&#20026;:
void(*)()
整数不能作&#20026;函数使用,将【0】&#24378;制&#36716;&#25442;&#20026;函数指&
#38024;的&#31867;型: (void(*)()0)();

&#20851;&#32852;,聚合(Aggregation),&#32452;合(composition)的区&#21035;。

&#20851;系&#24378;度的�&#24378;:&#20851;&#32852;---聚合---&#32452;合

&#20851;&#32852;:一般&#20851;系,如【&#24072;生&#20851;系】
聚合:has-a
&#32452;合:contains-a 生命周期相同

2009年8月12日水曜日

2009年8月11日火曜日