2012年12月2日 星期日

自動mount(umount) usb

#include <stdio.h>
#include <stdlib.h>

int main(){
    FILE *pf;
    int port_num = 2 , i =0;
    char tmp[100] = {'\0'};
    char base='a';

    while(1){
        for(i = 0 ;i < port_num ; i++){
            char buffer[2048]={'\0'};
           
            sprintf(tmp , "fdisk -l |grep sd%c1" , base+i);
           
            pf = popen(tmp, "r");
            fread(buffer, sizeof(buffer), 1, pf);
            pclose(pf);

            if('\0' != buffer[0]){ //sdx1 exist       
                memset(buffer, '\0' , sizeof(buffer));
                sprintf(tmp , "mount |grep sd%c1" , base+i);
                pf = popen(tmp, "r");
                fread(buffer, sizeof(buffer), 1, pf);
                pclose(pf);
           
                if('\0' != buffer[0]){
                    //do nothing...
                }else{
                    sprintf(tmp , "mount -t auto /dev/sd%c1 /mnt/usb%d" ,base+i,i+1); // mount
                    system(tmp);
                }
            }else{
                memset(buffer, '\0' , sizeof(buffer));
                sprintf(tmp , "mount |grep sd%c1" , base+i);
                pf = popen(tmp, "r");
                fread(buffer, sizeof(buffer), 1, pf);
                pclose(pf);
               
                if('\0' != buffer[0]){
                    sprintf(tmp , "umount /mnt/usb%d" ,i+1);
                    system(tmp);
                }
            }
        }
        sleep(1);
    }
   
    return 0;
}


在skel\etc\init.d 的 rcS 添加 /root/automountusb &

沒有留言:

張貼留言