#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <linux/kernel>
static unsigned long get_file_size(const char *path)
{
struct stat statbuff;
if(stat(path, &statbuff) >= 0){
return statbuff.st_size;
}
return -1;
}
static unsigned int print_mount_point(void)
{int fd = -1;
int size = 0;
int i = 0;
int j = 0;
char strBuf[100];
char *p;
system("cat /proc/mounts > ./.1.txt");
unsigned long fileSize = get_file_size("./.1.txt");
system("rm ./.1.txt");
char *buffer = (char *)malloc(fileSize + 1);
char *tmpBuf = (char *)malloc(fileSize + 1);
if(NULL == buffer || NULL == tmpBuf)
{
printf("%s malloc error \n", __func__);
return -1;
}
fd = open("/proc/mounts", O_RDONLY);
if(-1 == fd)
{
printf("%s open error \n", __func__);
return -1;
}
size = read(fd, buffer, fileSize);
if(size != fileSize)
{
printf("%s read file len error \n", __func__);
close(fd);
return -1;
}
buffer[fileSize] = '\0';
close(fd);
p = buffer;
while(i<fileSize)
while(i<fileSize)
{
memset(tmpBuf, 0xff, sizeof(tmpBuf));
j = i;
while((i<fileSize) && (*p != '\0'))
{
tmpBuf[i] = *p;
i++;
p++;
if((*p == ' ') || (*p == '\n'))
{
break;
}
}
tmpBuf[i] = '\0';
if(NULL != strstr(&tmpBuf[j], "media"))
{
memset(strBuf, 0xff, 100);
sprintf(strBuf, "USB disk mount point : %s ", &tmpBuf[j]);
printf("%s \n", strBuf);
}
}
free(buffer);
free(tmpBuf);
return 0;
}
void main(void)
{
print_mount_point();
}