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
Ïà¹ØÎĵµ£º
Ê×ÏÈ£¬ÄÚ´æµÄ´óСÔÚlinuxÄÚºËÖеĻñÖª·½·¨
1.ͨ¹ýbootloader µÄ tag mem´«Èë¡£
Setup.c Öеĺ¯ÊýÈçÏ£º
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem ......
¶ÔÓںܶàÆÕͨÓû§À´ËµLinuxÊÇÉñÃØµÄ£¬ºÜ¶àÅóÓÑ´Ó½Ó´¥PC¿ªÊ¼½Ó´¥µÄ¾ÍÊÇwindow£¬Ò»ÇÐϰ¹ß¶¼Ô´ÓÚwindow£¬ÅóÓÑLinuxϵͳ¼¸ºõÊøÊÖÎ޲ߣ¨±ÊÕß»ù±¾¾ÍÕâÑù£¬ËùÒÔÔÚŬÁ¦Ñ§Ï°ing…£©£¬ÄÇôLinuxµ½µ×ÄÜ×öЩʲô£¬ÓÖÓÐʲôÓÃÍ¾ÄØ£¿ÈÃÎÒÃÇÀ´Ò»Ì½¾¿¾¹¡£ÊÀ½çÉÏ×î´óµÄ¼¼ÊõÖ§³Ö¡¢Èí¼þºÍÓ²¼þ¹«Ë¾Ã¿ÌìÊ¹Ó ......
§1£®PCI×ÜÏßÌåϵ½á¹¹¸ÅÊö
PCI×ÜÏßÌåϵ½á¹¹ÊÇÒ»ÖÖ²ã´ÎʽµÄ£¨Hierarchical£©Ìåϵ½á¹¹¡£ÔÚÕâÖÖ²ã´ÎʽÌåϵ½á¹¹ÖУ¬PCIÇÅÉ豸ռ¾Ý×ÅÖØÒªµÄµØÎ»£¬Ëû½«¸¸×ÜÏߺÍ×Ó×ÜÏßÁ¬½ÓÔÚÒ»Æð£¬´Ó¶øÊ¹Õû¸öϵͳ¿´ÆðÀ´ÏñÒ»¿Åµ¹ÖõÄÊ÷Ðͽṹ¡£Ê÷µÄ¶¥¶ËÊÇϵͳµÄCPU£¬Ëûͨ¹ýÒ»¸ö½ÏÎªÌØ±ðµÄPCIÇÅÉ豸??Host£¯PCIÇÅÉ豸ºÍ¸ùPCI×ÜÏߣ¨root pci bus ......
linuxÖÐtouchÃüÁî²ÎÊý²»³£Óã¬Ò»°ãÔÚʹÓÃmakeµÄʱºò¿ÉÄÜ»áÓõ½£¬ÓÃÀ´ÐÞ¸ÄÎļþʱ¼ä´Á£¬»òÕßн¨Ò»¸ö²»´æÔÚµÄÎļþ,ÒÔÏÂÊÇlinuxÖÐtouchÃüÁî²ÎÊýµÄʹÓ÷½·¨:
¡¡¡¡touch [-acm][-r ref_file(²ÎÕÕÎļþ)|-t time(ʱ¼äÖµ)] file(ÎļþÃû)
¡¡¡¡example:
¡¡¡¡touch file1.txt ¸üÐÂfile1.txtµÄ´æÈ¡ºÍÐÞ¸Äʱ¼ä
¡¡¡¡touch -c file1.tx ......