linux CʹÓùܵÀͨÐÅ£¨Ò»£©
LinuxÖеĽø³ÌͨÐÅ
1.¹ÜµÀ
º¯ÊýÔÐÍ£ºint pipe(int filedes[2]);
º¯Êý·µ»ØÖµ£º ÕýÈ··µ»Ø0£»´íÎó·µ»Ø-1
ÆäÖеÄÎļþÃèÊö·ûfiledes[0]ÊÇÓÃÀ´¶ÁÈ¡Êý¾ÝµÄ£¬filedes[1]ÊÇÓÃÀ´Ð´Êý¾ÝµÄ¡£
Àý×Ó1£º
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#define MAXLINE 1024
int main(void)
{
int n,files[2];
pid_t pid;
char line[MAXLINE];
if(pipe(files)<0)
{
fprintf(stderr,"pipe error!\n);
exit(1);
}
if((pid=fork())<0)
{
fprintf(stderr,"fork error!\n");
exit(1);
}
else if(pid>0)
{
close(fd[0]);
write(fd[1],"how are you!\n",13);
}
else
{
close(fd[1]);
n=read(fd[0],line,MAXLINE);
write(STDOUT_FILENO,line,n);
}
exit(0);
}
Àý×Ó2£º
ÒÔÏÂÊǼÆËãÁ½¸öÊýµÄºÍ£º
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#define MAXLINE 1024
int main(void)
{
int n,int1,int2;
char line[MAXLINE];
while((n=read(STDIN_FILENO,line,MAXLINE))>0)
{
line[n]=0;
if(sscanf(line,"%d+%d",&int1,&int2)==2)
{
sprintf(line,"%d\n",int1+int2);
n=strlen(line);
if(write(STDOUT_FILENO,line,n)!=n)
{
fprintf(stderr,"write error!\n");
exit(1);
}
}
else
{
if(write(STDOUT_FILENO,"invalid args\n",13)!=13)
{
fprintf(stderr,"write error error!\n");
exit(1);
}
}
}
exit(0);
}
ÏÂÃæµÄ³ÌÐòµ÷ÓÃÉÏÃæµÄadd³ÌÐò£¬²¢Í¨¹ý¹ÜµÀ´«Öµ£º
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#define MAXLINE 1024
static void sig_pipe(int);
int main(void)
{
int n,fd1[2],fd2[2];
pid_t pid;
char line[MAXLINE];
if(signal(SIGPIPE,sig_pipe)==SIG_ERR)
{
fprintf(stderr,"signal error!\n");
exit(1);
}
if(pipe(fd1)<0 || pipe(fd2)<0)
{
fprintf(stderr,"pipe error!\n");
exit(1);
}
if((pid=fork())<0)
{
fprintf(stderr,"fork error!\n");
exit(1);
}
else if(pid>0)
{
close(fd1[0]);
close
Ïà¹ØÎĵµ£º
¹¦ÄÜ˵Ã÷£ºÇãµ¹ÍøÂç´«ÊäÊý¾Ý¡£
Óï¡¡¡¡·¨£ºtcpdump [-adeflnNOpqStvx][-c<Êý¾Ý°üÊýÄ¿>][-dd][-ddd][-F<±í´ïÎļþ>][-i<ÍøÂç½çÃæ>][-r<Êý¾Ý°üÎļþ>][-s<Êý¾Ý°ü´óС>][-tt][-T<Êý¾Ý°üÀàÐÍ>][-vv][-w<Êý¾Ý°üÎļþ>][Êä³öÊý¾ÝÀ¸Î»]
²¹³ä˵Ã÷£ºÖ´ÐÐtcpdumpÖ¸Áî¿ÉÁгö¾¹ýÖ¸¶¨ÍøÂç½çÃæµ ......
×î½üͨ¶ÁÁËÒ»ÏÂÈí¼þµ÷ÊÔµÄÒÕÊõ£¨The art of debugging with gdb,ddd,eclipse£©£¬×ÜÌåÀ´ËµÊÇÒ»°ãÈëÃż¶µÄµ÷ÊÔÓÃÊé¡£ÎÒ¸öÈ˸оõ¶Ô³õѧgdbµÄÓÐÒ»¶¨µÄ×÷Óã¬ÓÐÀ¢ÓÚÌâÄ¿art¡£ÎÒ¼òµ¥µÄ×ö¸ö×ܽᣬ¹©ÈëÃŲο¼¡£Ö÷Òª½²ÁËgdbµÄ³£ÓÃÃüÁîÒÔ¼°³£¼ûbugµÄµ÷ÊÔ¡£
³£ÓÃÃüÁ
1. ÔÝÍ£»úÖÆ
a.¶ÏµãµÄʹÓÃ
& ......
±àÒë²¢°²×°Busybox 1.15.3µ½L inux2.6.11.1,Æô¶¯ÏµÍ³
½øÈëshell Ìáʾ: ./ash : can't access tty; job control turned off.
·ÖÎö·¢ÏÖ
/etc/inittabÎļþÖÐÓÐÒ»ÐÐ:
::askfirst:/bin/ash
ÕâÔÚbusybox 1.2.1ÔËÐÐÕý³£
ÐÞ¸ÄΪ
tty1::askfirst:/bin/ash
ºóÕý³£. ......
§1£®PCI×ÜÏßÌåϵ½á¹¹¸ÅÊö
PCI×ÜÏßÌåϵ½á¹¹ÊÇÒ»ÖÖ²ã´ÎʽµÄ£¨Hierarchical£©Ìåϵ½á¹¹¡£ÔÚÕâÖÖ²ã´ÎʽÌåϵ½á¹¹ÖУ¬PCIÇÅÉ豸ռ¾Ý×ÅÖØÒªµÄµØÎ»£¬Ëû½«¸¸×ÜÏߺÍ×Ó×ÜÏßÁ¬½ÓÔÚÒ»Æð£¬´Ó¶øÊ¹Õû¸öϵͳ¿´ÆðÀ´ÏñÒ»¿Åµ¹ÖõÄÊ÷Ðͽṹ¡£Ê÷µÄ¶¥¶ËÊÇϵͳµÄCPU£¬Ëûͨ¹ýÒ»¸ö½ÏÎªÌØ±ðµÄPCIÇÅÉ豸??Host£¯PCIÇÅÉ豸ºÍ¸ùPCI×ÜÏߣ¨root pci bus ......
1.×î¼òµ¥µÄ°ì·¨ÐÞ¸Ä/etc/rc.d/rc.localÎļþ(Õâ¸ö·½·¨ÊÇÔÚ²»ÐèÒªloginµÄÇé¿öϾÍÄÜ×Ô¶¯ÔËÐеÄ)
2.»¹ÓÐÐ޸IJ»Í¬Óû§µÄÓû§Ä¿Â¼ÏµÄ.bashrcÎļþ¿ÉÒÔʵÏÖµ±¸ÃÓû§µÇ½µÄʱºò×Ô¶¯ÔËÐÐһЩ½Å±¾(¼ÇµÃ/etcÏÂÒ²ÓÐÒ»¸ö.bashrcÎļþ,Ð޸ĺó¿ÉÒÔÈÃÈκÎÓû§µÇ½¶¼×Ô¶¯Ö´ÐÐһЩ½Å±¾µÄ)
3.»¹ÓÐÒ»¸öºÜºÃµÄ·½·¨,×öÒ»¸öÊôÓÚ×Ô¼ºµÄrcÆô¶¯½Å± ......