锘??xml version="1.0" encoding="utf-8" standalone="yes"?> Daemon鍑芥暟鐨勭敤娉?/span> 璇存槑錛?/span> 璁╀竴涓▼搴忓悗鍙拌繍琛屻?/span> 鍘熷瀷錛?/span> 鍙傛暟錛?/span> 褰?nbsp;nochdir涓洪浂鏃訛紝褰撳墠鐩綍鍙樹負鏍圭洰褰曪紝鍚﹀垯涓嶅彉錛?/span> 褰?nbsp;noclose涓洪浂鏃訛紝鏍囧噯杈撳叆銆佹爣鍑嗚緭鍑哄拰閿欒杈撳嚭閲嶅鍚戜負/dev/null錛屼篃灝辨槸涓嶈緭鍑轟換浣曚俊 鎭紝鍚﹀垯鐓ф牱杈撳嚭銆?/span> 榪斿洖鍊鹼細 deamon()璋冪敤浜?/span>fork()錛屽鏋?/span>fork鎴愬姛錛岄偅涔堢埗榪涚▼灝辮皟鐢?/span>_exit(2)閫鍑猴紝鎵浠ョ湅鍒扮殑閿欒淇℃伅 鍏ㄩ儴鏄瓙榪涚▼浜х敓鐨勩傚鏋滄垚鍔熷嚱鏁拌繑鍥?/span>0錛屽惁鍒欒繑鍥?/span>-1騫惰緗?/span>errno銆?/span> 紺轟緥錛?/span> 鍋囧榪愯鎴愬姛錛岀埗榪涚▼鍦?/span>daemon鍑芥暟榪愯瀹屾瘯鍚庤嚜鏉錛屼互鍚庣殑浼戠湢鍜屾墦鍗板叏閮ㄦ槸瀛愯繘紼嬫潵榪愯銆?/span> 鍙互淇敼daemon鍑芥暟鐨勫弬鏁版潵鏌ョ湅鏁堟灉銆?/span> 鍙互鍘繪帀daemon涓鍙ワ紝鐢?/span>./a.out&鏉ラ獙璇佹晥鏋溿?/span>
]]>
鍔熻兘錛氬鍒跺瓧絎︿覆s
璇存槑錛氳繑鍥炴寚鍚戣澶嶅埗鐨勫瓧絎︿覆鐨勬寚閽堬紝鎵闇絀洪棿鐢眒alloc()鍒嗛厤涓斿彲浠ョ敱free()閲婃斁銆?br />
涓句緥錛?br />
// strdup.c
#include <syslib.h>
#include <string.h>
main()
{
char *s="this is just f";
char *d;
d=strdup(s);
printf("%s",d);
getchar();
return 0;
}
strdup()涓昏鏄嫹璐濆瓧絎︿覆s鐨勪竴涓壇鏈紝鐢卞嚱鏁拌繑鍥炲艱繑鍥烇紝榪欎釜鍓湰鏈夎嚜宸辯殑鍐呭瓨絀洪棿錛屽拰s涓嶇浉騫層?br />
char *strdup(const char *s)
{
char *t = NULL;
if (s && (t = (char*)malloc(strlen(s) + 1)))
strcpy(t, s);
return t;
}
]]>