嵌入式linux自动挂载卸载u盘
2012-09-04 18:12
996 查看
#include <stdio.h>
#include <stdlib.h>
#include <error.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <sys/mount.h>
#include <unistd.h>
#include <pthread.h>
int
main()
{
pid_t pc;
int i,fd;
char flag=0;
setvbuf(stdout, NULL, _IONBF, 0);
while (1)
{
int fd;
char buf[1024];
int len;
char *seek=NULL;
fd = open( "/proc/partitions",O_RDONLY);
if (fd>0)
{
/*add by cyx at 20120904 必须先清空否则会出错*/
memset(buf, 0 ,sizeof(buf));
len = read(fd, buf, sizeof(buf));
close(fd);
if (len>0)
{
seek = buf;
seek = strstr(seek, "mmcblk0p1");
if((flag&0x1)==0)
if(seek)
{
chdir("/");
mkdir("mnt/mmc_sd_card", 0777);
system("mount -t vfat /dev/mmc/blk0/part1 /mnt/mmc_sd_card");
flag=flag|0x1;
}
if(seek==NULL)
if(flag&0x1)
{
flag=flag&0xfe;
}
seek = buf;
seek = strstr(seek, "sda1");
if((flag&0x2)==0)
if(seek)
{
printf("mount /mnt/usb_disc1......\n");
chdir("/");
mkdir("mnt/usb_disc1",0777);
system("mount -t vfat /dev/sda1 /mnt/usb_disc1");
flag=flag|0x2;
}
if(seek==NULL)
if(flag&0x2)
{
printf("umount /mnt/usb_disc1......\n");
system("umount /mnt/usb_disc1;rm -rf /mnt/usb_disc1");
system("rm -rf /mnt/usb_disc1");
flag=flag&0xfd;
}
seek = buf;
seek = strstr(seek, "sda2");
if((flag&0x4)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc2",0777);
system("mount -t vfat /dev/sda2 /mnt/usb_disc2");
flag=flag|0x4;
}
if(seek==NULL)
if(flag&0x4)
{
flag=flag&0xfb;
}
seek = buf;
seek = strstr(seek, "sda3");
if((flag&0x8)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc3",0777);
system("mount -t vfat /dev/sda3 /mnt/usb_disc3");
flag=flag|0x8;
}
if(seek==NULL)
if(flag&0x8)
{
flag=flag&0xf7;
}
seek = buf;
seek = strstr(seek, "sda4");
if((flag&0x10)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc4",0777);
system("mount -t vfat /dev/sda4 /mnt/usb_disc4");
flag=flag|0x10;
}
if(seek==NULL)
if(flag&0x10)
{
flag=flag&0xef;
}
}
}
sleep(1);//1秒钟检测一次
}
}
#include <stdlib.h>
#include <error.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <sys/mount.h>
#include <unistd.h>
#include <pthread.h>
int
main()
{
pid_t pc;
int i,fd;
char flag=0;
setvbuf(stdout, NULL, _IONBF, 0);
while (1)
{
int fd;
char buf[1024];
int len;
char *seek=NULL;
fd = open( "/proc/partitions",O_RDONLY);
if (fd>0)
{
/*add by cyx at 20120904 必须先清空否则会出错*/
memset(buf, 0 ,sizeof(buf));
len = read(fd, buf, sizeof(buf));
close(fd);
if (len>0)
{
seek = buf;
seek = strstr(seek, "mmcblk0p1");
if((flag&0x1)==0)
if(seek)
{
chdir("/");
mkdir("mnt/mmc_sd_card", 0777);
system("mount -t vfat /dev/mmc/blk0/part1 /mnt/mmc_sd_card");
flag=flag|0x1;
}
if(seek==NULL)
if(flag&0x1)
{
flag=flag&0xfe;
}
seek = buf;
seek = strstr(seek, "sda1");
if((flag&0x2)==0)
if(seek)
{
printf("mount /mnt/usb_disc1......\n");
chdir("/");
mkdir("mnt/usb_disc1",0777);
system("mount -t vfat /dev/sda1 /mnt/usb_disc1");
flag=flag|0x2;
}
if(seek==NULL)
if(flag&0x2)
{
printf("umount /mnt/usb_disc1......\n");
system("umount /mnt/usb_disc1;rm -rf /mnt/usb_disc1");
system("rm -rf /mnt/usb_disc1");
flag=flag&0xfd;
}
seek = buf;
seek = strstr(seek, "sda2");
if((flag&0x4)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc2",0777);
system("mount -t vfat /dev/sda2 /mnt/usb_disc2");
flag=flag|0x4;
}
if(seek==NULL)
if(flag&0x4)
{
flag=flag&0xfb;
}
seek = buf;
seek = strstr(seek, "sda3");
if((flag&0x8)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc3",0777);
system("mount -t vfat /dev/sda3 /mnt/usb_disc3");
flag=flag|0x8;
}
if(seek==NULL)
if(flag&0x8)
{
flag=flag&0xf7;
}
seek = buf;
seek = strstr(seek, "sda4");
if((flag&0x10)==0)
if(seek)
{
chdir("/")
mkdir("mnt/usb_disc4",0777);
system("mount -t vfat /dev/sda4 /mnt/usb_disc4");
flag=flag|0x10;
}
if(seek==NULL)
if(flag&0x10)
{
flag=flag&0xef;
}
}
}
sleep(1);//1秒钟检测一次
}
}
相关文章推荐
- linux嵌入式系统下实现U盘、SD卡自动挂载功能
- 嵌入式linux 自动挂载U盘
- linux 嵌入式自动检测u盘口并挂载
- linux嵌入式系统下实现U盘、SD卡自动挂载功能
- linux嵌入式系统下实现U盘、SD卡自动挂载功能
- Linux下U盘SD卡的自动挂载和卸载
- linux嵌入式系统下实现U盘、SD卡自动挂载功能
- linux嵌入式系统下实现U盘、SD卡自动挂载功能
- 嵌入式 linux下以及arm下sd卡mmc的自动挂载以及自动卸载小结
- 嵌入式linux下u盘自动挂载的实现
- linux 自动挂载U盘(1)
- 脚本实现U盘自动挂载(linux)
- linux 自动挂载U盘之udev
- arm-linux 自动挂载U盘报错记录处理
- 添加Udev规则,让Linux自动挂载U盘(转载)
- linux下各种分区的自动挂载和卸载.
- linux ubuntu 挂载 卸载 u盘
- 【了解Linux系统中U盘挂载或卸载的知识】
- Linux下C语言来检测USB设备以及自动区分U盘和硬盘并自动挂载
- Linux如何手动挂载/卸载u盘