LinuxÏÂgetsockopt/setsockopt º¯Êý˵Ã÷
¹¦ÄÜÃèÊö£º
»ñÈ¡»òÕßÉèÖÃÓëij¸öÌ×½Ó×Ö¹ØÁªµÄÑ¡ ÏѡÏî¿ÉÄÜ´æÔÚÓÚ¶à²ãÐÒéÖУ¬ËüÃÇ×Ü»á³öÏÖÔÚ×îÉÏÃæµÄÌ×½Ó×ֲ㡣µ±²Ù×÷Ì×½Ó×ÖÑ¡Ïîʱ£¬Ñ¡ÏîλÓڵIJãºÍÑ¡ÏîµÄÃû³Æ±ØÐë¸ø³ö¡£ÎªÁ˲Ù×÷Ì×½Ó×Ö²ãµÄÑ¡ÏӦ¸Ã ½«²ãµÄÖµÖ¸¶¨ÎªSOL_SOCKET¡£ÎªÁ˲Ù×÷ÆäËü²ãµÄÑ¡Ï¿ØÖÆÑ¡ÏîµÄºÏÊÊÐÒéºÅ±ØÐë¸ø³ö¡£ÀýÈ磬ΪÁ˱íʾһ¸öÑ¡ÏîÓÉTCPÐÒé½âÎö£¬²ãÓ¦¸ÃÉ趨ΪÐÒé ºÅTCP¡£
Ó÷¨£º
#include <sys/types.h>
#include <sys/socket.h>
int getsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen);
int setsockopt(int sock, int level, int optname, const void *optval, socklen_t optlen);
²ÎÊý£º
sock£º½«Òª±»ÉèÖûòÕß»ñȡѡÏîµÄÌ×½Ó×Ö¡£
level£ºÑ¡ÏîËùÔÚµÄÐÒé²ã¡£
optname£ºÐèÒª·ÃÎʵÄÑ¡ÏîÃû¡£
optval£º¶ÔÓÚgetsockopt()£¬Ö¸Ïò·µ»ØÑ¡ÏîÖµµÄ»º³å¡£¶ÔÓÚsetsockopt()£¬Ö¸Ïò°üº¬ÐÂÑ¡ÏîÖµµÄ»º³å¡£
optlen£º¶ÔÓÚgetsockopt()£¬×÷ΪÈë¿Ú²ÎÊýʱ£¬Ñ¡ÏîÖµµÄ×î´ó³¤¶È¡£×÷Ϊ³ö¿Ú²ÎÊýʱ£¬Ñ¡ÏîÖµµÄʵ¼Ê³¤¶È¡£¶ÔÓÚsetsockopt()£¬ÏÖÑ¡ÏîµÄ³¤¶È¡£
·µ»ØËµÃ÷£º
³É¹¦Ö´ÐÐʱ£¬·µ»Ø0¡£Ê§°Ü·µ»Ø-1£¬errno±»ÉèΪÒÔϵÄij¸öÖµ
EBADF£ºsock²»ÊÇÓÐЧµÄÎļþÃèÊö´Ê
EFAULT£ºoptvalÖ¸ÏòµÄÄÚ´æ²¢·ÇÓÐЧµÄ½ø³Ì¿Õ¼ä
EINVAL£ºÔÚµ÷ÓÃsetsockopt()ʱ£¬optlenÎÞЧ
ENOPROTOOPT£ºÖ¸¶¨µÄÐÒé²ã²»ÄÜʶ±ðÑ¡Ïî
ENOTSOCK£ºsockÃèÊöµÄ²»ÊÇÌ×½Ó×Ö
²ÎÊýÏêϸ˵Ã÷£º
levelÖ¸¶¨¿ØÖÆÌ×½Ó×ֵIJã´Î.¿ÉÒÔÈ¡ÈýÖÖÖµ:
1)SOL_SOCKET:ͨÓÃÌ×½Ó×ÖÑ¡Ïî.
2)IPPROTO_IP:IPÑ¡Ïî.
3)IPPROTO_TCP:TCPÑ¡Ïî.¡¡
optnameÖ¸¶¨¿ØÖƵķ½Ê½(Ñ¡ÏîµÄÃû³Æ),ÎÒÃÇÏÂÃæÏêϸ½âÊÍ¡¡
optval»ñµÃ»òÕßÊÇÉèÖÃÌ×½Ó×ÖÑ¡Ïî.¸ù¾ÝÑ¡ÏîÃû³ÆµÄÊý¾ÝÀàÐͽøÐÐת»»¡¡
Ñ¡ÏîÃû³Æ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ËµÃ÷¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Êý¾ÝÀàÐÍ
========================================================================
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡SOL_SOCKET
------------------------------------------------------------------------
SO_BROADCAST¡¡¡¡¡¡¡¡¡¡¡¡ÔÊÐí·¢Ë͹㲥Êý¾Ý¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int
SO_DEBUG¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÔÊÐíµ÷ÊÔ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int
SO_DONTROUTE¡¡¡¡¡¡¡¡¡¡¡¡²»²éÕÒ·ÓÉ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡int
SO_ERROR¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ñµÃÌ×½Ó×Ö´íÎó¡¡¡¡¡¡¡¡¡
Ïà¹ØÎĵµ£º
LinuxÖÐtty¡¢
pty¡¢ptsµÄ¸ÅÄîÇø±ð
»ù±¾¸ÅÄ
1> tty(ÖÕ¶ËÉ豸µÄͳ³Æ):
ttyÒ»´ÊÔ´ÓÚ
Teletypes£¬»òÕßteletypewriters£¬ÔÀ´Ö¸µÄÊǵ紫´ò×Ö»ú£¬ÊÇͨ¹ý´®ÐÐÏßÓôòÓ¡»ú¼üÅÌͨ¹ýÔĶÁºÍ·¢ËÍÐÅÏ¢µÄ¶«Î÷£¬ºóÀ´Õâ¶«Î÷±»¼üÅÌ
ÓëÏÔʾÆ÷È¡´ú£¬ËùÒÔÏÖÔÚ½ÐÖն˱ȽϺÏÊÊ¡£
ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´ ......
ÓÉÓÚÁ½¸öϵͳÉ趨ʱ¼äʱÒÔÖ÷°åCMOSÄÚµÄʱ¼äΪÒÀ¾Ý£¬µ«È´Óв»Í¬µÄʱ¼ä¼ÆËã±ê×¼¡£ËùÒÔµ¼ÖÂÁËϵͳʱ¼äµÄ¾À·×ÎÊÌâ¡£
LinuxºÍÆ»¹û²Ù×÷ϵͳÒÔµ±Ç°Ö÷°åCMOSÄÚʱ¼ä×öΪ¸ñÁÖÍþÖαê׼ʱ¼ä£¬ÔÙ¸ù¾ÝϵͳÉèÖõÄÊ±ÇøÀ´×îÖÕÈ·¶¨µ±Ç°ÏµÍ³Ê±¼ä£¨ÈçÊ±ÇøÉèÖÃΪGMT+08:00±±¾©Ê±¼äʱÒÔ¼°µ±Ç°CMOSʱ¼äΪ03 ......
Linux̫ΰ´óÁË£¬Ê²Ã´¶«Î÷¶¼¿ÉÒÔÓÉÄãÀ´×öÖ÷£¬Linux¼ÓÔØÍêÄں˺ó£¬ËùÓÐµÄÆäËûϵͳ·þÎñ£¬½ø³Ì£¬¶¼ÊÇ¿¿½Å±¾À´¼ÓÔØµÄ¡£ËùÒÔLinuxÊÇÕâôµÄ͸Ã÷£¬
Äã¿ÉÒÔÇå³ýµÄÖ¸µ¼ÄãµÄϵͳ×öÁËʲô¡£
ÏÂÃæÎҾͶÔLinuxµÄÆô¶¯½Å±¾×öÁË×¢ÊÍ£¬¸Ã½Å±¾ÊÇÊôÓÚLFSµÄ£¬ÒòΪ¸Ãϵͳ±È½ÏС£¬Ëù ......
LinuxÉ豸Çý¶¯³ÌÐòÖ®¶ÁÊé±Ê¼Ç£¨Ò»£©
——µÚÈýÕÂ×Ö·ûÉ豸Çý¶¯³ÌÐò
¡ð¡¢ËµÃ÷
±Ê¼ÇÊÊÓÃÓÚLinuxµÄ2.6.10ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔLinux Device Driver3ÌṩµÄscull³ÌÐò(scullĿ¼ÖеÄmain.cºÍscull.h) ......
ÌÚѶ¿Æ¼¼Ñ¶£¨ÂåÂåºÓ£© 5ÔÂ20ÈÕÏûÏ¢£¬ºìñ£¨Red Hat£©Ðû²¼ÒÑÔÚ¹úÄÚÆô¶¯´óѧÉúLinux¼¼ÄÜ´óÈü£»²¢½«Í¨¹ý³õÈü¡¢¸´Èü¡¢¾öÈü²ã²ãÑ¡°Î£¬ÓÚ7ÔÂ17ÈÕ¾ö³ö»ñʤÕß¡£
ºìñÖйúÊг¡²¿×ܼà¶ÐÁÒÒ±íʾ£¬¹úÄÚLinuxÊг¡È˲Åȱ¿ÚºÜ´ó£¬ÒѾӰÏìµ½Á˺ܶàLinuxÏîÄ¿µÄÕý³£½øÐУ¬Ï£Íûͨ¹ýÕâЩ¾Ù´ëÔö¼Ó´óѧÉú¶ÔLinuxµÄÐËȤ£¬´Ó¶øÅàÑø¸ü¶àÈ˲š£
Ìî ......