亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? select.txt

?? 一個通訊程序源碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
NOTE from ...!gatech!emory!tridom!wht:the following is the mail message I originally received; witha little tinkering, i got the select call to behave as advertisedin the BSD manual (my xenix is 386 2.3).  Added it to /lib/386/Slibx.aand all is well for me.  Good luck.From emory!gatech!hubcap!ncrcae!ncr-sd!crash!elgar!ag Thu Feb  2 13:04:07 EST 1989Article 4851 of comp.unix.xenix:Path: tridom!emory!gatech!hubcap!ncrcae!ncr-sd!crash!elgar!ag>From: ag@elgar.UUCP (Keith Gabryelski)Newsgroups: comp.unix.xenixSubject: select() on SCO XENIX 2.3.Message-ID: <38@elgar.UUCP>Date: 24 Jan 89 04:54:17 GMTReply-To: ag@elgar.UUCP (Keith Gabryelski)Organization: Elgar Corporation, San Diego, CALines: 474A few days ago I was paging through my SCO XENIX 2.3.1 Release Notesand found, on page 44 (section 16), a section describing 4BSDenhancements to the current release of SCO XENIX.select(S) was mentioned specifically.I checked the rest of the 2.3 manuals to see if there was a clue onhow to access select(); no dice.  I tried my 2.2 dev sys libraries tosee if it had been supported in previous releases and just notmentioned; negative.I decided to see if I could get select() to work on my system.  Andthat is what this article is about.I checked /xenix and found:	% nm xenix | grep select	nm: xenix: too many symbols to sort		# chuckle	0020:00015bec  T _selectBingo!  I also found <sys/select.h> (which has a comment aboutthe select(2) system call. :-) ).When a system call is made in a C program on a Unix system (egopen(2)), it actually links in a file from libc.a (/lib/libc.a) (inthis case `open.o') written in assembly that loads a register with asystem call number and causes an exception to occur.  The `trap'instruction is used on the 68000, on a vax it's `chmk', and on a 370it's `svc'.  Control is transfered to the kernel which (in the case ofthis particular exception) will index the register into a table(called the sysent table) to get the address of the actual routine inkernel memory to call (_open).At least under SCO XENIX this algorithm is modified somewhat.When a system call is made in a C program on a SCO XENIX system (egopen(S)), it links in a file from libc.a (/lib/386/Slibc.a) (in thiscase `open.o') written in assembly that loads the register `eax' witha system call number and jumps to 7:0 which (a guess) is mapped to aninstruction that switches into supervisory mode and jumps to theroutine ioint (??) in the kernel address space.  The interrupt routinehands the system call number (along with the user given arguments) to_trap with figures out what to sysent table to use (there are a fewunder SCO XENIX) and does the right thing.The _open routine (in libc.a's open.o) would probably look somethinglike:;; open - open a file for reading or writing;	title	open	.386SYSNUM	equ 	5			; open's system call number is `5'.extrn	_errno:dwordpublic  _open_TEXT	segment  dword use32 public 'CODE'	assume   cs: _TEXT_open	proc near	mov	eax, SYSNUM		; Get system call number.	;	; I don't even pretend to understand masm syntax.  I tried	; the following line (and variations) without any success.	;;	call    far 7:0			; Switch to kernel and call SYSNUM.	;	; Don't laugh, it works.	;	db 9ah	dw 0,0	dw 7	jb	short _cerror		; below == error.	xor	eax, eax		; zero return value (no error).	ret				; done._cerror:	mov	_errno, eax		; Save error code in _errno.	mov	eax, -1			; Return -1 (as error).	ret				; done._open	endp_TEXT	ends	endUnder SCO XENIX the sysent table (struct sysent in <sys/systm.h>) lookssomething like:struct sysent{    unsigned char  sy_ret;	 /* Type of return value (int, void ...) */    unsigned char  sy_arg386;	 /* Number of 386 words args on stack */    unsigned char  sy_nlarg286;	 /* # of 286 large model word args on stack */    unsigned char  sy_nmarg286;	 /* 286 Small Middle: max # of args */    unsigned	   sy_argmask;	 /* Argument types on stack. */	     int   (*sy_call)(); /* System call address in kernel */}sy_ret is the type return of the value this system call returns.  `0'seems to be INT and `6' is probably void.sy_arg386 is the number of words the arguments for this system calltake on the stack.sy_nlarg286 and sy_nmarg286 are similar to sy_arg386 but used fordoing 286 stuff.  I don't plan on mentioning the 286 stuff in thisarticle that much, it just isn't interesting to me.sy_argmask is the type of args on the stack using the following table:NUM | SYMBOL  | 386 | 286L | EXPLANATION 0  |         |     |      | Arg not used. 1  | DATAP   |	 2  |  1   | Arg is a data pointer; seg + address 2  | TEXTP   |	 2  |  1   | Arg is a text pointer; seg + address 3  | CONST   |	 1  |  1   | Arg is an int-sized constant  4  | UCONST  |	 1  |  1   | Arg is an unsigned int-sized constant 5  | LCONST  |  1  |  1   | Arg is a long-sized constant 6  | FDATAP  |	 1  |  1   | Arg is FAR data pointer. 7  | SODATAP |  2  |      | 386: 32-bit offset.    |         |     |  1   | 286: low word is 16 bit data pointer offset,    |         |	    |      |	  high word is 16 bit selector. 8  | SOTEXTP |  2  |      | 386: 32-bit offset.    |         |     |  1   | 286: low word is 16 bit text pointer offset,    |         |	    |      |	  high word is 16 bit selector.Each nybble in sy_argmask represents one argument passed to the systemcall.  Bits 0-3 represent arg one; 4-7 arg two; 8-12 arg three; etc.A total of eight arguments (4 bits times 8 args = 32 bits in an int)can be passed to a function (although MASK, a macro used to makesysent's sy_argmask field is limited to six arguments).NUM is the number (put in each nybble) represented by the SYMBOL (in<sys/systm.h>) that corresponds to the arg type EXPLANATION and takes[386|286] (depending on the model you are using) words on the userstack.So, for the open() system call: sy_argmask is 0x00000331 and sy_arg386is 0x04.	open(char *path, int oflag, int mode);             ^^^^^^      ^^^        ^^^             DATAP       CONST      CONSTsy_call is the pointer to the function in kernel memory that shouldhandle this system call request.The sysent table on my system looks something like:Syscal Num | ret| 386| L  | SM |    Arg Types    | System Call sysent:    00     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _nosys    01     | 00 | 02 | 01 | 05 | 0 0 0 0 0 0 0 1 | _rexit    02     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _fork	    03     | 00 | 04 | 03 | 03 | 0 0 0 0 0 4 1 3 | _read	    04     | 00 | 04 | 03 | 03 | 0 0 0 0 0 4 1 3 | _write    05     | 00 | 04 | 03 | 03 | 0 0 0 0 0 3 3 1 | _open	    06     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 3 | _close    07     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _wait	    08     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 3 1 | _creat	    09     | 00 | 04 | 02 | 03 | 0 0 0 0 0 0 1 1 | _link	    0a     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 1 | _unlink	    0b     | 00 | 04 | 02 | 03 | 0 0 0 0 0 0 1 1 | _exec    0c     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 1 | _chdir	    0d     | 00 | 00 | 00 | 05 | 0 0 0 0 0 0 0 0 | _gtime    0e     | 00 | 04 | 03 | 03 | 0 0 0 0 0 3 3 1 | _mknod           0f     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 3 1 | _chmod           10     | 00 | 04 | 03 | 03 | 0 0 0 0 0 3 3 1 | _chown           11     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 7 | _brk    12     | 00 | 04 | 02 | 03 | 0 0 0 0 0 0 1 1 | _stat    13     | 00 | 04 | 03 | 05 | 0 0 0 0 0 3 5 3 | _seek     14     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _getpid          15     | 00 | 05 | 03 | 03 | 0 0 0 0 0 3 1 1 | _smount          16     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 1 | _sumount         17     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 4 | _setuid          18     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _getuid          19     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 5 | _stime           1a     | 00 | 05 | 04 | 03 | 0 0 0 0 3 1 3 3 | _ptrace          1b     | 00 | 01 | 01 | 04 | 0 0 0 0 0 0 0 3 | _alarm           1c     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 1 3 | _fstat           1d     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _pause           1e     | 00 | 04 | 02 | 03 | 0 0 0 0 0 0 1 1 | _utime           1f     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 1 3 | _stty            20     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 1 3 | _gtty            21     | 00 | 03 | 02 | 03 | 0 0 0 0 0 0 3 1 | _saccess         22     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 3 | _nice            23     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 |    24     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _sync            25     | 00 | 02 | 02 | 03 | 0 0 0 0 0 0 3 3 | _kill            26     | 00 | 00 | 01 | 00 | 0 0 0 0 0 0 0 0 |                  27     | 00 | 00 | 02 | 00 | 0 0 0 0 0 0 0 0 |                  28     | 00 | 00 | 03 | 00 | 0 0 0 0 0 0 0 0 |                  29     | 00 | 02 | 02 | 03 | 0 0 0 0 0 0 3 3 | _dup             2a     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _pipe            2b     | 00 | 02 | 01 | 05 | 0 0 0 0 0 0 0 1 | _times           2c     | 06 | 08 | 05 | 03 | 0 0 0 1 4 8 4 1 | _profil          2d     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 3 | _lock            2e     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 4 | _setgid          2f     | 00 | 00 | 00 | 03 | 0 0 0 0 0 0 0 0 | _getgid          30     | 00 | 03 | 02 | 02 | 0 0 0 0 0 0 2 3 | _ssig            31     | 00 | 00 | 01 | 03 | 0 0 0 0 0 0 0 3 | _msgsys          32     | 06 | 07 | 04 | 03 | 0 0 0 0 5 5 1 3 | _sysi86          33     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 1 | _sysacct         34     | 00 | 00 | 01 | 06 | 0 0 0 0 0 0 0 3 | _shmsys          35     | 00 | 00 | 01 | 03 | 0 0 0 0 0 0 0 3 | _semsys          36     | 00 | 04 | 03 | 03 | 0 0 0 0 0 7 3 3 | _ioctl           37     | 00 | 00 | 04 | 00 | 0 0 0 0 0 0 0 0 |                  38     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 | _nosys           39     | 00 | 00 | 05 | 00 | 0 0 0 0 0 0 0 0 |                  3a     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 | _nosys           3b     | 00 | 06 | 03 | 03 | 0 0 0 0 0 1 1 1 | _exece           3c     | 00 | 01 | 01 | 03 | 0 0 0 0 0 0 0 3 | _umask           3d     | 00 | 02 | 01 | 03 | 0 0 0 0 0 0 0 1 | _chroot          3e     | 00 | 00 | 06 | 00 | 0 0 0 0 0 0 0 0 |                  3f     | 00 | 00 | 07 | 00 | 0 0 0 0 0 0 0 0 |                  40     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 | _nosys           41     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 | _nosys           42     | 00 | 00 | 00 | 00 | 0 0 0 0 0 0 0 0 | _nosys       

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩aaaaaa| 欧美高清精品3d| 国产精品伦理一区二区| 99在线热播精品免费| 亚洲综合丁香婷婷六月香| 678五月天丁香亚洲综合网| 精品一区二区三区视频在线观看| 精品粉嫩超白一线天av| 91日韩精品一区| 捆绑紧缚一区二区三区视频| 久久久久久99精品| 欧美丝袜第三区| av爱爱亚洲一区| 一本色道久久综合精品竹菊| 激情综合色综合久久| 狠狠色狠狠色综合| 老司机一区二区| 国产一区二区久久| 天天av天天翘天天综合网色鬼国产| 久久精品一区蜜桃臀影院| 欧美日韩三级视频| 色婷婷国产精品久久包臀 | 欧美r级在线观看| 在线观看日产精品| 色婷婷av一区二区三区gif| 欧日韩精品视频| 精品剧情在线观看| 成人欧美一区二区三区白人| 国产三级精品三级| 久久九九影视网| 一区二区三区高清在线| 国产精品久久久久久久久图文区 | 国产精品久久久久久久久久免费看 | 欧美一区二区三区四区视频| 99热国产精品| 欧美理论片在线| 久久久久久免费网| 亚洲一区在线视频| 国产**成人网毛片九色 | 亚洲国产成人午夜在线一区| 欧美日高清视频| 久久看人人爽人人| 日韩在线一二三区| 午夜久久电影网| 国产成人小视频| 9人人澡人人爽人人精品| 欧美日韩免费一区二区三区视频| 26uuu精品一区二区在线观看| 日韩精品中文字幕在线不卡尤物| 欧美一区二区三区爱爱| 国产精品国产馆在线真实露脸 | 久久精品这里都是精品| 五月天国产精品| 色综合久久综合网97色综合 | 亚洲欧洲av在线| 国产一二三精品| 4438x亚洲最大成人网| 亚洲素人一区二区| 亚洲高清久久久| 久久99久久久欧美国产| 91极品美女在线| 日韩欧美视频在线| 亚洲一区二区不卡免费| 91啪亚洲精品| 136国产福利精品导航| 国产成人综合在线| 久久精品这里都是精品| 久久99九九99精品| 精品久久久久久亚洲综合网| 亚洲图片有声小说| 欧美日韩国产成人在线免费| 一区二区在线观看不卡| 激情综合色综合久久| 91精品婷婷国产综合久久竹菊| 亚洲精选视频在线| 色婷婷激情综合| 亚洲一线二线三线视频| 欧美日韩午夜在线视频| 视频一区二区中文字幕| 欧美另类videos死尸| 日韩成人免费在线| 成人在线综合网站| 91精品国产综合久久久久| 亚洲成a人在线观看| av一区二区三区在线| 国产精品素人一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲色图欧美在线| 欧美性一级生活| 日韩精品久久理论片| 日韩精品一区二区三区中文不卡| 精品一区二区三区在线播放 | 成人免费视频一区| 国产精品进线69影院| 91一区一区三区| 视频一区视频二区中文| 精品少妇一区二区三区视频免付费| 免费的成人av| 欧美日本一区二区在线观看| 偷拍与自拍一区| 久久免费视频色| 91年精品国产| 久久成人综合网| 亚洲素人一区二区| 欧美一区二区在线视频| 国产永久精品大片wwwapp| 亚洲欧美一区二区三区极速播放 | 久久国产人妖系列| 中文字幕一区二区三区精华液| 色狠狠一区二区| 麻豆国产欧美一区二区三区| 欧美亚洲禁片免费| 国产一区二区在线观看视频| 国产精品久线观看视频| 777a∨成人精品桃花网| 成人亚洲一区二区一| 日韩激情一区二区| 国产精品久久久久久亚洲毛片| 欧美日韩国产三级| 成人永久aaa| 免费美女久久99| 亚洲电影在线播放| 国产片一区二区三区| 欧美精选一区二区| 91免费视频观看| 国产aⅴ综合色| 蜜臀久久99精品久久久画质超高清| 亚洲天天做日日做天天谢日日欢| 一区二区三区成人| 久久精品人人做人人爽97| 欧美夫妻性生活| 欧美亚洲动漫制服丝袜| 成人免费精品视频| 极品销魂美女一区二区三区| 调教+趴+乳夹+国产+精品| 亚洲欧美另类小说| 亚洲欧美自拍偷拍| 中文字幕精品—区二区四季| 日韩欧美精品在线| 日韩一区二区在线观看视频| 麻豆国产精品一区二区三区| 亚洲成人你懂的| 一区2区3区在线看| 亚洲欧美色综合| 亚洲天堂福利av| 国产精品电影一区二区三区| 欧美国产禁国产网站cc| 久久久99精品免费观看不卡| 精品日韩在线观看| 欧美tk—视频vk| 精品久久久三级丝袜| 精品嫩草影院久久| 欧美精品一区二区三区在线 | 成人免费va视频| 粉嫩av一区二区三区粉嫩| 国产一区二区三区久久久| 久久av资源网| 国产精品一区二区三区四区| 亚洲午夜免费视频| 性感美女久久精品| 久久精品国产亚洲aⅴ| 久久99国产精品久久| 国产乱对白刺激视频不卡| 国产超碰在线一区| 色综合色综合色综合| 欧美在线你懂得| 日韩视频中午一区| 欧美激情综合在线| 亚洲男人的天堂一区二区| 亚洲精品乱码久久久久久黑人 | 日韩av在线播放中文字幕| 免费成人小视频| 成人久久视频在线观看| 91在线免费播放| 国产不卡高清在线观看视频| 国产99久久久国产精品免费看| 波多野结衣视频一区| 欧美午夜电影一区| 久久一区二区视频| 亚洲综合免费观看高清完整版在线 | 亚洲欧美激情插| 日本va欧美va欧美va精品| 精品亚洲国内自在自线福利| 成人高清免费观看| 国产在线精品一区二区夜色 | 精品国产一区二区亚洲人成毛片| 国产婷婷色一区二区三区四区| 亚洲日本va午夜在线电影| 五月婷婷激情综合| 从欧美一区二区三区| 欧美精品 日韩| 自拍偷拍亚洲综合| 精品一二三四区| 欧美午夜电影在线播放| 亚洲国产精品传媒在线观看| 秋霞电影网一区二区| 91麻豆免费视频| 久久精品男人的天堂| 日韩精品成人一区二区三区| 日本黄色一区二区|