Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linuxϵͳµ÷ÓÃ

 ¹¦ÄÜÃèÊö£º
ÔÚÏûÏ¢¶ÓÁÐÉϽøÐÐÊÕ·¢ÏûÏ¢¡£ÎªÁË·¢ËÍÏûÏ¢£¬µ÷Óýø³Ì¶ÔÏûÏ¢¶ÓÁбØÐëÓÐдȨÄÜ¡£½ÓÊÕÏûϢʱ±ØÐëÓжÁȨÄÜ¡£
Ó÷¨£º 
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
²ÎÊý£º  
msqid£ºÏûÏ¢¶ÓÁеÄʶ±ðÂë¡£
msgp£ºÖ¸ÏòÏûÏ¢»º³åÇøµÄÖ¸Õ룬´ËλÖÃÓÃÀ´ÔÝʱ´æ´¢·¢ËͺͽÓÊÕµÄÏûÏ¢£¬ÊÇÒ»¸öÓû§¿É¶¨ÒåµÄͨÓýṹ£¬ÐÎ̬ÈçÏÂ
struct msgbuf {
    long mtype;     /* ÏûÏ¢ÀàÐÍ£¬±ØÐë > 0 */
    char mtext[1];  /* ÏûÏ¢Îı¾ */
};
msgsz£ºÏûÏ¢µÄ´óС¡£
msgtyp£º´ÓÏûÏ¢¶ÓÁÐÄÚ¶ÁÈ¡µÄÏûÏ¢ÐÎ̬¡£Èç¹ûֵΪÁ㣬Ôò±íʾÏûÏ¢¶ÓÁÐÖеÄËùÓÐÏûÏ¢¶¼»á±»¶ÁÈ¡¡£
msgflg£ºÓÃÀ´Ö¸Ã÷ºËÐijÌÐòÔÚ¶ÓÁÐûÓÐÊý¾ÝµÄÇé¿öÏÂËùÓ¦²ÉÈ¡µÄÐж¯¡£Èç¹ûmsgflgºÍ³£ÊýIPC_NOWAITºÏÓã¬ÔòÔÚmsgsnd()Ö´ÐÐʱÈôÊÇÏûÏ¢¶ÓÁÐÒÑÂú£¬Ôòmsgsnd()½«²»»á×èÈû£¬¶ø»áÁ¢¼´·µ»Ø-1£¬Èç¹ûÖ´ÐеÄÊÇmsgrcv()£¬ÔòÔÚÏûÏ¢¶ÓÁгʿÕʱ£¬²»×öµÈ´ýÂíÉÏ·µ»Ø-1£¬²¢É趨´íÎóÂëΪENOMSG¡£µ±msgflgΪ0ʱ£¬msgsnd()¼°msgrcv()ÔÚ¶ÓÁгÊÂú»ò³Ê¿ÕµÄÇéÐÎʱ£¬²ÉÈ¡×èÈûµÈ´ýµÄ´¦Àíģʽ¡£
   
·µ»ØËµÃ÷£º  
³É¹¦Ö´ÐÐʱ£¬msgsnd()·µ»Ø0£¬msgrcv()·µ»Ø¿½±´µ½mtextÊý×éµÄʵ¼Ê×Ö½ÚÊý¡£Ê§°ÜÁ½Õß¶¼·µ»Ø-1£¬errno±»ÉèΪÒÔϵÄij¸öÖµ
[¶ÔÓÚmsgsnd] 
EACCES£ºµ÷Óýø³ÌÔÚÏûÏ¢¶ÓÁÐÉÏûÓÐдȨÄÜ£¬Í¬Ê±Ã»ÓÐCAP_IPC_OWNERȨÄÜ
EAGAIN£ºÓÉÓÚÏûÏ¢¶ÓÁеÄmsg_qbytesµÄÏÞÖÆºÍmsgflgÖÐÖ¸¶¨IPC_NOWAIT±êÖ¾£¬ÏûÏ¢²»Äܱ»·¢ËÍ
EFAULT£ºmsgpÖ¸ÕëÖ¸ÏòµÄÄÚ´æ¿Õ¼ä²»¿É·ÃÎÊ
EIDRM£ºÏûÏ¢¶ÓÁÐÒѱ»É¾³ý
EINTR£ºµÈ´ýÏûÏ¢¶ÓÁпռä¿ÉÓÃʱ±»ÐźÅÖжÏ
EINVAL£º²ÎÊýÎÞЧ
ENOMEM£ºÏµÍ³ÄÚ´æ²»×㣬ÎÞ·¨½«msgpÖ¸ÏòµÄÏûÏ¢¿½±´½øÀ´
[¶ÔÓÚmsgrcv]
E2BIG£ºÏûÏ¢Îı¾³¤¶È´óÓÚmsgsz£¬²¢ÇÒmsgflgÖÐûÓÐÖ¸¶¨MSG_NOERROR
EACCES£ºµ÷Óýø³ÌûÓжÁȨÄÜ£¬Í¬Ê±Ã»¾ßÓÐCAP_IPC_OWNERȨÄÜ
EAGAIN£ºÏûÏ¢¶ÓÁÐΪ¿Õ£¬²¢ÇÒmsgflgÖÐûÓÐÖ¸¶¨IPC_NOWAIT
EFAULT£ºmsgpÖ¸ÏòµÄ¿Õ¼ä²»¿É·ÃÎÊ
EIDRM£ºµ±½ø³Ì˯Ãߵȴý½ÓÊÕÏûϢʱ£¬ÏûÏ¢Òѱ»É¾³ý
EINTR£ºµ±½ø³Ì˯Ãߵȴý½ÓÊÕÏûϢʱ£¬±»ÐźÅÖжÏ
EINVAL£º²ÎÊýÎÞЧ
ENOMSG£ºmsgflgÖÐÖ¸¶¨ÁËIPC_NOWAIT£¬Í¬Ê±ËùÇëÇ


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

linux Ͻ»²æ±àÒë»·¾³µÄСС˵·¨

 ±¾ÈËÔÚ½¨Á¢½»²æ±àÒë»·¾³ÊÇÓöµ½ÁËÒ»µãµãСÎÊÌâºÍÒÉÎʵ㣺
  1¡¢Ê¹ÓÃÐéÄâ»úºÍPC»úÖ®¼ä¹²ÏíÎļþÊÇ£¨²»ÊÇÓù²ÏíĿ¼·½Ê½£©£¬´ÓPC¸´ÖÆÎļþµ½ÐéÄâ»ú¹²Ïí£¬¹²ÏíµÄÎļþ²»ÄÜÌ«´ó£¬¶øÕßÎļþÀïÃæ×îºÃ²»ÒªÓжà¸öÎļþ£¨¾¹È»ÓÐÕâÖÖÇé¿ö£©¡£
 2¡¢ÔÚdebian2.6ÄÚºËÖÐÓÃvim±àд³ÌÐò±ÈÓÃviºÃ£¬ÓÃviʱ»áÒýÈëºÜ¶à´íÎóµÄ×Ö·û¡£ ......

linux sock_rawԭʼÌ×½Ó×Ö±à³Ì (ת£©


sock_rawԭʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
 
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))·¢ËͽÓÊÕÒÔ ......

Linux ϵĴíÎó error.h

  errno
ÊǸöint±äÁ¿£¬·µ»Ø´íÎó
ÓдíÎóʱʹÓ÷½·¨
fprintf(fp, "%s", strerror(errno))
perrorÓ÷¨
#include <stdio.h>
#include <stdlib.h>
#include<errno.h>
int main(void)
{
FILE *fp;
if((fp=fopen("aaa.txt","r+"))==NULL)
{
puts("²»ÄܽøÈ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ