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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? unpipc.h

?? 這是unix網(wǎng)絡(luò)編程一書(shū)的源代碼希望能對(duì)大家的學(xué)習(xí)提供一種便利
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* include unpipch */
/* Our own header.  Tabs are set for 4 spaces, not 8 */

#ifndef	__unpipc_h
#define	__unpipc_h

#include	"../config.h"	/* configuration options for current OS */
							/* "../config.h" is generated by configure */

/* If anything changes in the following list of #includes, must change
   ../aclocal.m4 and ../configure.in also, for configure's tests. */

#include	<sys/types.h>	/* basic system data types */
#include	<sys/time.h>	/* timeval{} for select() */
#include	<time.h>		/* timespec{} for pselect() */
#include	<errno.h>
#include	<fcntl.h>		/* for nonblocking */
#include	<limits.h>		/* PIPE_BUF */
#include	<signal.h>
#include	<stdio.h>
#include	<stdlib.h>
#include	<string.h>
#include	<sys/stat.h>	/* for S_xxx file mode constants */
#include	<unistd.h>
#include	<sys/wait.h>

#ifdef	HAVE_MQUEUE_H
# include	<mqueue.h>		/* Posix message queues */
#endif

#ifdef	HAVE_SEMAPHORE_H
# include	<semaphore.h>	/* Posix semaphores */

#ifndef	SEM_FAILED
#define	SEM_FAILED	((sem_t *)(-1))
#endif

#endif

#ifdef	HAVE_SYS_MMAN_H
# include	<sys/mman.h>	/* Posix shared memory */
#endif

#ifndef	MAP_FAILED
#define	MAP_FAILED	((void *)(-1))
#endif

#ifdef	HAVE_SYS_IPC_H
# include	<sys/ipc.h>		/* System V IPC */
#endif

#ifdef	HAVE_SYS_MSG_H
# include	<sys/msg.h>		/* System V message queues */
#endif

#ifdef	HAVE_SYS_SEM_H
#ifdef	__bsdi__
#undef	HAVE_SYS_SEM_H		/* hack: BSDI's semctl() prototype is wrong */
#else
# include	<sys/sem.h>		/* System V semaphores */
#endif

#ifndef	HAVE_SEMUN_UNION
/* $$.It semun$$ */
union semun {				/* define union for semctl() */
  int              val;
  struct semid_ds *buf;
  unsigned short  *array;
};
#endif
#endif	/* HAVE_SYS_SEM_H */

#ifdef	HAVE_SYS_SHM_H
# include	<sys/shm.h>		/* System V shared memory */
#endif

#ifdef	HAVE_SYS_SELECT_H
# include	<sys/select.h>	/* for convenience */
#endif

#ifdef	HAVE_POLL_H
# include	<poll.h>		/* for convenience */
#endif

#ifdef	HAVE_STROPTS_H
# include	<stropts.h>		/* for convenience */
#endif

#ifdef	HAVE_STRINGS_H
# include	<strings.h>		/* for convenience */
#endif

/* Next three headers are normally needed for socket/file ioctl's:
 * <sys/ioctl.h>, <sys/filio.h>, and <sys/sockio.h>.
 */
#ifdef	HAVE_SYS_IOCTL_H
# include	<sys/ioctl.h>
#endif
#ifdef	HAVE_SYS_FILIO_H
# include	<sys/filio.h>
#endif

#ifdef	HAVE_PTHREAD_H
# include	<pthread.h>
#endif

#ifdef	HAVE_DOOR_H
# include	<door.h>		/* Solaris doors API */
#endif

#ifdef	HAVE_RPC_RPC_H
#ifdef _PSX4_NSPACE_H_TS	/* Digital Unix 4.0b hack, hack, hack */
#undef	SUCCESS
#endif
# include	<rpc/rpc.h>		/* Sun RPC */
#endif

/* Define bzero() as a macro if it's not in standard C library. */
#ifndef	HAVE_BZERO
#define	bzero(ptr,n)		memset(ptr, 0, n)
#endif

/* Posix.1g requires that an #include of <poll.h> DefinE INFTIM, but many
   systems still DefinE it in <sys/stropts.h>.  We don't want to include
   all the streams stuff if it's not needed, so we just DefinE INFTIM here.
   This is the standard value, but there's no guarantee it is -1. */
#ifndef INFTIM
#define INFTIM          (-1)    /* infinite poll timeout */
#ifdef	HAVE_POLL_H
#define	INFTIM_UNPH				/* tell unpxti.h we defined it */
#endif
#endif

/* Miscellaneous constants */
#ifndef	PATH_MAX			/* should be in <limits.h> */
#define	PATH_MAX	1024	/* max # of characters in a pathname */
#endif

#define	MAX_PATH	1024
/* $$.ix [MAX_PATH]~constant,~definition~of$$ */
#define	MAXLINE		4096	/* max text line length */
/* $$.ix [MAXLINE]~constant,~definition~of$$ */
/* $$.ix [BUFFSIZE]~constant,~definition~of$$ */
#define	BUFFSIZE	8192	/* buffer size for reads and writes */

#define	FILE_MODE	(S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
					/* default permissions for new files */
/* $$.ix [FILE_MODE]~constant,~definition~of$$ */
#define	DIR_MODE	(FILE_MODE | S_IXUSR | S_IXGRP | S_IXOTH)
					/* default permissions for new directories */
/* $$.ix [DIR_MODE]~constant,~definition~of$$ */

#define	SVMSG_MODE	(MSG_R | MSG_W | MSG_R>>3 | MSG_R>>6)
					/* default permissions for new SV message queues */
/* $$.ix [SVMSG_MODE]~constant,~definition~of$$ */
#define	SVSEM_MODE	(SEM_R | SEM_A | SEM_R>>3 | SEM_R>>6)
					/* default permissions for new SV semaphores */
/* $$.ix [SVSEM_MODE]~constant,~definition~of$$ */
#define	SVSHM_MODE	(SHM_R | SHM_W | SHM_R>>3 | SHM_R>>6)
					/* default permissions for new SV shared memory */
/* $$.ix [SVSHM_MODE]~constant,~definition~of$$ */

typedef	void	Sigfunc(int);	/* for signal handlers */

#ifdef	HAVE_SIGINFO_T_STRUCT
typedef	void	Sigfunc_rt(int, siginfo_t *, void *);
#endif

#define	min(a,b)	((a) < (b) ? (a) : (b))
#define	max(a,b)	((a) > (b) ? (a) : (b))

#ifndef	HAVE_TIMESPEC_STRUCT
struct timespec {
  time_t	tv_sec;		/* seconds */
  long		tv_nsec;	/* and nanoseconds */
};
/* $$.It timespec$$ */
/* $$.Ib tv_sec$$ */
/* $$.Ib tv_nsec$$ */
#endif

/*
 * In our wrappers for open(), mq_open(), and sem_open() we handle the
 * optional arguments using the va_XXX() macros.  But one of the optional
 * arguments is of type "mode_t" and this breaks under BSD/OS because it
 * uses a 16-bit integer for this datatype.  But when our wrapper function
 * is called, the compiler expands the 16-bit short integer to a 32-bit
 * integer.  This breaks our call to va_arg().  All we can do is the
 * following hack.  Other systems in addition to BSD/OS might have this
 * problem too ...
 */

#ifdef	__bsdi__
#define	va_mode_t	int
#else
#define	va_mode_t	mode_t
#endif
/* $$.ix [va_mode_t]~datatype,~definition~of$$ */

		/* our record locking macros */
#define	read_lock(fd, offset, whence, len) \
			lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
#define	readw_lock(fd, offset, whence, len) \
			lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
#define	write_lock(fd, offset, whence, len) \
			lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
#define	writew_lock(fd, offset, whence, len) \
			lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
#define	un_lock(fd, offset, whence, len) \
			lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)
#define	is_read_lockable(fd, offset, whence, len) \
			lock_test(fd, F_RDLCK, offset, whence, len)
#define	is_write_lockable(fd, offset, whence, len) \
			lock_test(fd, F_WRLCK, offset, whence, len)
/* end unpipch */

#define	Read_lock(fd, offset, whence, len) \
			Lock_reg(fd, F_SETLK, F_RDLCK, offset, whence, len)
#define	Readw_lock(fd, offset, whence, len) \
			Lock_reg(fd, F_SETLKW, F_RDLCK, offset, whence, len)
#define	Write_lock(fd, offset, whence, len) \
			Lock_reg(fd, F_SETLK, F_WRLCK, offset, whence, len)
#define	Writew_lock(fd, offset, whence, len) \
			Lock_reg(fd, F_SETLKW, F_WRLCK, offset, whence, len)
#define	Un_lock(fd, offset, whence, len) \
			Lock_reg(fd, F_SETLK, F_UNLCK, offset, whence, len)
#define	Is_read_lockable(fd, offset, whence, len) \
			Lock_test(fd, F_RDLCK, offset, whence, len)
#define	Is_write_lockable(fd, offset, whence, len) \
			Lock_test(fd, F_WRLCK, offset, whence, len)

			/* prototypes for our own library functions */
void	 daemon_init(const char *, int);
void	 daemon_inetd(const char *, int);
char	*gf_time(void);
int		 lock_reg(int, int, int, off_t, int, off_t);
pid_t	 lock_test(int, int, off_t, int, off_t);
void	*my_shm(size_t);
char	*px_ipc_name(const char *);
int		 readable_timeo(int, int);
ssize_t	 readline(int, void *, size_t);
ssize_t	 readn(int, void *, size_t);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合视频在线观看| 91精品久久久久久久久99蜜臂| 亚洲成人在线网站| 欧美激情一区二区三区在线| 精品视频999| 91在线一区二区| 国产一区二区精品久久| 日韩国产欧美在线观看| 日韩毛片在线免费观看| 久久久久久久久蜜桃| 欧美日韩dvd在线观看| 99re6这里只有精品视频在线观看| 九九九久久久精品| 日韩二区在线观看| 亚洲激情图片一区| 亚洲人成网站色在线观看| 国产嫩草影院久久久久| 精品国产一区二区国模嫣然| 一本大道久久a久久综合| 成人黄色免费短视频| 国产精品一区二区三区99| 久久99国产精品尤物| 久久成人免费电影| 久久激情综合网| 免费精品视频在线| 日韩精品一区第一页| 日韩激情视频网站| 五月天欧美精品| 午夜久久久久久电影| 一区二区三区色| 亚洲制服丝袜在线| 亚洲国产你懂的| 亚洲国产精品尤物yw在线观看| 亚洲免费观看高清| 亚洲自拍欧美精品| 偷拍一区二区三区四区| 亚洲动漫第一页| 天天操天天色综合| 日产欧产美韩系列久久99| 午夜精品一区二区三区免费视频 | 日韩—二三区免费观看av| 亚洲国产三级在线| 日本不卡一区二区| 久久国内精品视频| 另类小说欧美激情| 久久精品久久精品| 国内精品国产成人国产三级粉色| 精油按摩中文字幕久久| 国产二区国产一区在线观看| 高清不卡一区二区在线| 成人app网站| 欧洲在线/亚洲| 4438x成人网最大色成网站| 日韩一区二区在线观看| 精品国产欧美一区二区| 国产欧美日韩激情| 亚洲视频免费在线观看| 午夜a成v人精品| 国产一区二区视频在线播放| 99久久婷婷国产精品综合| 91国产成人在线| 日韩一区二区免费在线电影| 国产调教视频一区| 亚洲免费伊人电影| 蜜臀久久久久久久| 懂色av噜噜一区二区三区av| 97aⅴ精品视频一二三区| 在线观看91av| 日本一区二区免费在线观看视频| 亚洲免费在线看| 精品一区中文字幕| 91蜜桃免费观看视频| 欧美理论电影在线| 国产视频在线观看一区二区三区| 一区二区三区在线视频观看58| 免费xxxx性欧美18vr| 不卡在线观看av| 3d动漫精品啪啪| 国产精品国产自产拍高清av王其| 亚洲自拍偷拍网站| 国产福利一区二区| 91精品欧美一区二区三区综合在| 久久综合色播五月| 亚洲老妇xxxxxx| 国产一二三精品| 欧美视频一区二区三区四区| 久久久久久久久岛国免费| 亚洲精品高清视频在线观看| 精品一区二区综合| 欧洲激情一区二区| 国产清纯白嫩初高生在线观看91 | aaa欧美日韩| 欧美成人综合网站| 夜夜嗨av一区二区三区中文字幕| 久久国产成人午夜av影院| 色哟哟一区二区在线观看| 欧美精品一区在线观看| 亚洲成在人线在线播放| 不卡电影免费在线播放一区| 欧美成人艳星乳罩| 亚洲电影第三页| www.在线成人| 久久五月婷婷丁香社区| 亚洲韩国精品一区| 91色porny| 中文字幕精品一区二区精品绿巨人 | 国产乱子轮精品视频| 欧美精品在线观看一区二区| 成人欧美一区二区三区1314 | 91丨porny丨中文| 久久品道一品道久久精品| 日本视频中文字幕一区二区三区| 色综合中文字幕国产 | 精品一区二区三区不卡| 欧美日韩国产一级| 亚洲男人的天堂在线观看| 成人永久看片免费视频天堂| 精品久久人人做人人爱| 免费黄网站欧美| 91精品国产综合久久精品 | 成人午夜激情片| 香蕉成人啪国产精品视频综合网 | 日韩一级大片在线观看| 午夜久久久影院| 欧美日韩亚洲高清一区二区| 亚洲综合色网站| 91国产福利在线| 久久久精品免费免费| 日本最新不卡在线| 欧美另类高清zo欧美| 亚洲国产一区二区在线播放| av在线综合网| 亚洲女同一区二区| 一本久久精品一区二区| 一区二区三区在线不卡| 91福利视频在线| 亚洲18影院在线观看| 欧美一区二区三区成人| 日本不卡一区二区三区| 欧美va亚洲va| 福利电影一区二区| 国产精品免费视频一区| 91网站在线观看视频| 一区二区三区在线免费视频| 在线观看区一区二| 日本欧美加勒比视频| 欧美精品一区男女天堂| 国产成+人+日韩+欧美+亚洲| 中文字幕中文字幕中文字幕亚洲无线| 成人一区二区三区中文字幕| 中文字幕中文字幕一区| 91国内精品野花午夜精品| 丝袜亚洲另类欧美| 日韩欧美高清在线| 国产精品911| 日韩毛片精品高清免费| 欧美日本一区二区| 久久成人免费日本黄色| 国产精品久久久久久亚洲毛片| 91成人国产精品| 久久爱www久久做| 国产精品不卡在线| 91精品国产欧美一区二区成人 | 精品在线你懂的| 国产精品天天看| 欧美日精品一区视频| 韩国三级在线一区| 亚洲久本草在线中文字幕| 欧美一区二区在线不卡| 成人国产精品免费网站| 婷婷丁香久久五月婷婷| 久久久久久一二三区| 欧美中文字幕不卡| 国产精品综合久久| 亚洲一二三区在线观看| 久久蜜桃一区二区| 欧洲亚洲国产日韩| 国产二区国产一区在线观看| 亚洲二区在线观看| 亚洲视频1区2区| 91精品免费在线| 99久久久久免费精品国产| 美女一区二区久久| 亚洲免费观看在线观看| 久久婷婷一区二区三区| 欧美三级日韩三级国产三级| 国产91丝袜在线观看| 欧美bbbbb| 夜夜嗨av一区二区三区四季av| 精品久久人人做人人爽| 欧美日韩国产影片| 99国产精品久久久久久久久久久| 久久99在线观看| 婷婷丁香激情综合| 樱桃视频在线观看一区| 国产三级三级三级精品8ⅰ区| 91精品国产aⅴ一区二区| 91成人国产精品| 99久久婷婷国产综合精品| 国产成人免费视频精品含羞草妖精|