LinuxÖÐÕýÈ·´¦Àíerrno
errno±äÁ¿(Ðèinclude errno.h)»á±»¸³Ò»¸öÕûÊýÖµ,²»Í¬µÄÖµ±íʾ²»Í¬µÄº¬Òå,
¿ÉÒÔͨ¹ý²é¿´¸ÃÖµÍÆ²â³ö´íµÄÔÒò¡£µ«ÊÇerrnoÊÇÒ»¸öÊý×Ö£¬´ú±íµÄ¾ßÌ庬Òå
»¹Òªµ½errno.hÖÐÈ¥ÔĶÁºê¶¨Òå¡£ÓÐÏÂÃæ¼¸ÖÖ·½·¨¿ÉÒÔ·½±ãµÄµÃµ½´íÎóÐÅÏ¢
(Ò»)
#include <stdio.h>
void perror(const char *s)
perror()ÓÃÀ´½«ÉÏÒ»¸öº¯Êý·¢Éú´íÎóµÄÔÒòÊä³öµ½stderr¡£²ÎÊýsËùÖ¸µÄ×Ö·û´®»áÏÈ
´òÓ¡³ö£¬ºóÃæ¸úÒ»¸öðºÅºÍÒ»¸ö¿Õ¸ñÔÙ¼ÓÉÏ´íÎóÔÒò×Ö·û´® ºóÃæÔÙ¼ÓÉÏÒ»¸ö»»Ðзû¡£
´Ë´íÎóÔÒòÒÀÕÕÈ«¾Ö±äÁ¿errnoµÄ Ö±À´¾ö¶¨Òª
Êä³öµÄ×Ö·û´®
*******/
#include<stdio.h>
#include<stdlib.h>
int main ()
{
FILE *fp;
fp=fopen("/tmp/xx","r+");
if(fp==NULL) perror("fopen");
return 0;
}
£¨¶þ£©
#include <string.h>
char * strerror(int errnum)
º¯Êý˵Ã÷ strerror£¨£©ÓÃÀ´ÒÀ²ÎÊýerrnumµÄ´íÎóÂëÀ´²éѯ´íÎóÔÒò
µÄÃèÊö×Ö·û´®£¬È»ºó½«¸Ã×Ö·û´®Ö¸Õë·µ»Ø¡£
Õâ¸öº¯Êý±¾Éí²¢²»»á±§´í ËùÒÔûÓÐΪÕâ¸öº¯Êý±£ÁôÏìÓ¦µÄ´íÎóÖµ
·µ»ØÖµ£º ·µ»ØÃèÊö´íÎóÔÒòµÄ×Ö·û´®Ö¸Õë
****/
#include <string.h>
#include <stdio.h>
int main ()
{
//ÏÔʾ´íÎó´úÂë0µ½9µÄ´íÎóÔÒòÃèÊö
int i;
for(i=0;i<10;i++)
fprintf(stderr,"%d:%s \n",i,strerror(i));
return 0;
}
strerrorº¯Êý¿ÉÄÜ»á¸Ä±äerror¡£Èç¹ûÐèÒªÔÚµ÷ÓÃstrerrorºóÔÙ´ÎʹÓÃ
error £¬Ó¦¸ÃÔÚµ÷ÓÃstrerrorÇ®±£´æerror£¬²¢ÔÚÔÙ´ÎʹÓÃ֮ǰ½«Æä»Ö¸´¡£
ÏÂÃæµÄ´úÂë˵Ã÷ÈçºÎÔÚʹÓÃstrerrorµÄͬʱÒÀÈ»±£³ÖerrorµÄÖµ
int error;
int fildes;
if (close(fildes)==-1){
error = errno;
fprintf(stderr,"Failed to close descriptor %d :%s\n",
fildes,strerror(errono);
errno = error;
}
ÕýÈ·µØ´¦ÀíerrnoÊǸö¼¬ÊÖµÄÎÊÌâ¡£ÓÉÓڿ⺯ÊýµÄʵÏÖÖпÉÄÜ»áµ÷ÓÃÆäËû¿ÉÒÔ
ÉèÖÃerrnoµÄº¯Êý£¬Òò´Ë£¬¼´Ê¹¿âº¯ÊýµÄÁª»ú°ïÖúÒ³ÃæÖÐûÓÐÏÔʾµÄ˵Ã÷£¬¿â
º¯Êý»¹ÊÇ»á¶Ôerrno½øÐÐÐ޸ġ£Í¬Ñù£¬Ó¦ÓóÌÐòÎÞ·¨Ð޸ĴÓstrerrorÖзµ»ØµÄ×Ö·û´®£
Ïà¹ØÎĵµ£º
ÎÒÕýÔÚѧϰдlinux device driver for embedded system.
ÎÒÓÐÒ»¸ölinuxǶÈëʽÉ豸£¬Ò²ÓÐÕâ¸öÉ豸µÄlinuxÔ´´úÂë¡£Ò²ÓÐcross compiler tool chain.
µÚÒ»²½£¬¾ÍÊÇдһ¸ö¼òµ¥µÄhelloÄ£¿é£¬È»ºó×°µ½É豸ÖС£ÒÔÑéÖ¤ÎÒÕâ¸ö¿ª·¢»·¾³¡£
ÔÚÍøÉÏËÑË÷ÁËһϣ¬ how to cross compile linux device driver
·¢ÏÖÔÚlinux´úÂë¸ùĿ¼µÄMak ......
ip ÊǸöÃüÁ ip ÃüÁîµÄ¹¦Äܺܶ࣡»ù±¾ÉÏËüÕûºÏÁË ifconfig Óë route ÕâÁ½¸öÃüÁ²»¹ýip µÄ¹¦ÄܸüÇ¿´ó£¡ Èç¹ûÄúÓÐÐËȤµÄ»°£¬Çë×ÔÐÐ vi /sbin/ifup ¾ÍÖªµÀÕû¸ö ifup ¾ÍÊÇÀûÓà ip Õâ¸öÃüÁîÀ´ÊµÏֵġ£ÏÂÃæ½éÉÜÒ»ÏÂʹÓ÷½·¨
[root@linux ~]# ip [option] [¶¯×÷] [ÃüÁî]
²ÎÊý£º
option £ºÉ趨µÄ²ÎÊý£¬Ö÷ÒªÓУº
  ......
Ŀ¼ºÍÎļþ²Ù×÷
²é¿´µ±Ç°Ä¿Â¼Ïà¶ÔÓÚ¸ùĿ¼µÄλÖÃ
¡¡
¡¡¡¡pwd
²é¿´µ±Ç°Ä¿Â¼ÄÚÈÝ
¡¡¡¡ls
ÒÔ³¤¸ñʽ²é¿´µ±Ç°Ä¿Â¼ÄÚÈÝ¡£¶ÔӦÿ¸öÎļþµÄÌõÄ¿½«°üÀ¨Á¬½ÓÊýÄ¿¡¢ËùÓÐÕß¡¢´óС¡¢×îºóÐÞ¸Äʱ¼ä¡¢È¨ÏÞµÈÄÚÈÝ
¡¡¡¡ls -l
¸Ä±äµ±Ç°Ä¿Â¼¡£Ä¿µÄĿ¼Ãû¿ÉÓÃÏà¶Ô·¾¶±íʾ£¬Ò²¿ÉÒÔÓþø¶Ô·¾¶±íʾ¡£
cd [Ä¿µÄĿ¼Ãû]
×ªÒÆµ½ÉÏÒ»¼¶Ä¿Â¼
c ......
1. gccµÄ__attribute__±àÒïÊôÐÔ
ÒªÁ˽âLinux Kernel´úÂëµÄ·Ö¶ÎÐÅÏ¢£¬ÐèÒªÁ˽âÒ»ÏÂgccµÄ__attribute__µÄ±àÒïÊôÐÔ£¬__attribute__Ö÷ÒªÓÃÓڸıäËùÉùÃ÷»ò¶¨ÒåµÄº¯Êý»òÊý¾ÝµÄÌØÐÔ£¬ËüÓкܶà×ÓÏÓÃÓڸıä×÷ÓöÔÏóµÄÌØÐÔ¡£±ÈÈç¶Ôº¯Êý£¬noline½«½ûÖ¹½øÐÐÄÚÁªÀ©Õ¹¡¢noreturn±íʾûÓзµ»ØÖµ¡¢pure±íÃ÷º¯Êý³ý·µ»ØÖµÍ⣬²»»áͨ¹ýÆäËü ......
linuxÆô¶¯Á÷³Ì£º
ϵͳԤ´¦Àí³ÌÐò->GRUB (´Ë½×¶Î¿ÉÒÔÀí½âΪbootloader½×¶Î)
->kernel (´Ë½×¶ÎΪkernel)
->initrd->initÆô¶¯->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(¶ÁÅäÖÃÎļþ)
1.->×Ö·ûģʽ->tty->bash
2.->ͼÐÎģʽ->½øÈëX Window-> ......