LINUX½ø³Ì¼äͨÐÅ
Linux ½ø³Ì¼äͨÐÅѧϰ
1.Linux ¼ä½ø³ÌͨÐŵķÖÀà
1. ¹ÜµÀͨÐÅ£¨pipe£©ºÍÃüÃû¹ÜµÀ£¨FIFO£©
2. Ðźţ¨Èí¼þÖжϣ©
3. ÏûÏ¢¶ÓÁÐ
4. ¹²ÏíÄÚ´æ
5. ÐźÅÁ¿
6. SOCKET
1.1¹ÜµÀͨÐÅ
¹ÜµÀͨÐÅÖ÷Òª·ÖÆÕͨ¹ÜµÀºÍÃüÃû¹ÜµÀ¡£
ËûÃÇÖ®¼äµÄ²î±ð¾ÍÔÚÓÚÆÕͨ¹ÜµÀÊʺÏͬһ¸ö׿ÏȵÄÁ½¸ö½ø³ÌÖ®¼äµÄͨÐÅ£¬¶øÃüÃû¹ÜµÀÔò²»ÊܸÃÏÞÖÆ¡£
¹ÜµÀÏà¹Øº¯ÊýÓÐ:
Int pipe(int filedes[2]);
Pipe º¯ÊýÓÃÓÚÔÚÄÚºËÖпª±ÙÒ»¿é»º³åÇøÓÃÓÚͨÐÅ£¬filedesÊÇ´«µÝ¸øÓû§µÄÁ½¸öÎļþÃèÊö·û¡£Filedes[0]ÓÃÓÚ¶Á£¬filedes[1]ÓÃÓÚд¡£
µ÷Óóɹ¦·µ»Ø0£¬·ñÔò·µ»Ø-1.
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pipe_fd[2];
pid_t pid;
char buf_r[100];
char* p_wbuf;
int r_num;
memset(buf_r,0,sizeof(buf_r));
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
if((pid=fork())==0)
{
printf("\n");
&nbs
Ïà¹ØÎĵµ£º
½ñÌìÖÕÓÚ°ÑOmapL137µÄ°å×ÓÅÜÆðÁËLinuxºÍÆä´øµÄdemo¡£ºÏÖÚ´ï¶ÔÕâ¸ö°å×Ó¶«Î÷×öµÄºÜÉÙ£¬°Ñomapl137µÄÌØµã¶¼Ã»ÓÐչʾ³öÀ´¡£¿É¾Í¿àÁËÎÒÃÇÕâЩÏëÒªÓÃÕâ¸öƬ×ÓµÄÈËÁË¡£¹úÄÚÍæÕâ¸öµÄÈË»¹²»¶à£¬ËùÓÐ×ÊÁϾÍÓ²×ÅͷƤÂýÂýÄ¥°É¡£
ǰ¶Îʱ¼äubootÊÇÓÉdspÄDZßÓÃnandwrite¹¤³Ìд½øÀ´µÄ£¬ÆäУÑ鷽ʽºÍubootµÄeccУÑéËÆºõÓгåÍ»£¬ ......
Ò»:ǰÑÔ
I2cÊÇphilipsÌá³öµÄÍâÉè×ÜÏß.I2CÖ»ÓÐÁ½ÌõÏß,Ò»Ìõ´®ÐÐÊý¾ÝÏß:SDA,Ò»ÌõÊÇʱÖÓÏßSCL.ÕýÒòΪÕâÑù,Ëü·½±ãÁ˹¤³ÌÈËÔ±
µÄ²¼Ïß.ÁíÍâ,I2CÊÇÒ»ÖÖ¶àÖ÷»ú¿ØÖÆ×ÜÏß.ËüºÍUSB×ÜÏß²»Í¬,USBÊÇ»ùÓÚmaster-slave»úÖÆ,ÈκÎÉ豸µÄͨÐűØÐëÓÉÖ÷»ú·¢Æð²Å¿ÉÒÔ.¶ø
I2C ÊÇ»ùÓÚmulti master»úÖÆ.һͬ×ÜÏßÉÏ¿ÉÔÊÐí¶à¸ömaster.¹ØÓÚI2CÐÒéµÄÖª ......
ÎҵĵçÄÔ°²×°ÁË˫ϵͳ£¬WindowsºÍLinux£¬²»¹ýÓÉÓÚLinuxÔÚ×î½üÒ»¶Îʱ¼äÄÚ²»»áʹÓã¬ËùÒÔÎÒ´òËãɾ³ýLinux¡£
ɾ³ýLinux×îÐèҪעÒâµÄµØ·½£¬¾ÍÊÇMBR£¨Master Boot Record£©¡£ÔÚɾ³ýLinux·ÖÇøÇ°£¬ÎÒÃÇÐèÒª½«Æô¶¯WindowsµÄÒýµ¼ÐÅϢдÈëMBR£¬·ñÔò£¬MBRÖеÄLinuxÒýµ¼ÐÅÏ¢£¬µ±È»¾Í²»ÄÜÆô¶¯WindowsÏµÍ ......
дÁË´úÂ룬ʹÓÃace_proactor, ÔÀ´windowsÅܵ÷dz£Æ¯ÁÁ£¬À´µ½linux¾Íʱ²»Ê±²»¹¤×÷£¬È»ºó¼Óasynce_connectorºó£¬·¢ÏÖÍê³É²»Äܹ¤×÷£¬async_stream_writeºó£¬·¢ÏÖ¿¨ÔÚÄÇÀ¸ù±¾·¢²»³öÈ¥£¬¶à´Î·ÖÎöºó£¬·¢ÏÖ£¬ÔÀ´Ö®Ç°ÓÐaio_readûÓÐÍê³É£¬aio_writeµÄÇëÇó¾ÍblockÄÇÀïÁË£¬writeÕâ¸ö²Ù×÷¾¹È»Ò»¶¨ÒªµÈǰµÄaio_readÍê³ÉÖ®ºó£¬²Å¿ÉÒ ......