天嵌 ARM开发社区

 找回密码
 注册
查看: 2870|回复: 4

linux 判断文件是否存在?

[复制链接]
wyz365889 发表于 2012-3-6 10:05:42 | 显示全部楼层 |阅读模式
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <sys/types.h>
#include <fcntl.h>
int main()
{
        int fd;
        fd = open("/dev/mmcblk0p1",O_RDWR);

        if(fd==-1)
        {
                printf("Read sdcard failure!");
        }
        else
        {
                printf("Read sdcard success!");
        }

        return 1;
}

想用打开文件方式判断sd卡是否存在,但是现在发现sd卡每次插拔/dev/底下那个参数数字会递增。

有什么方法可以解决的?求帮忙
TQ-lkp 发表于 2012-3-6 10:12:54 | 显示全部楼层
这个有个简单的办法,你在SD卡放一个文件,每次判断这个文件是否存在就可以了,再复杂些,文件中存放固定的一些字符可以加密,再做校验,一致就认为存在。
 楼主| wyz365889 发表于 2012-3-6 10:48:29 | 显示全部楼层
TQ-lkp 发表于 2012-3-6 10:12
这个有个简单的办法,你在SD卡放一个文件,每次判断这个文件是否存在就可以了,再复杂些,文件中存放固定的 ...

版主这个方法也行就是了。我测试了下,但是底下判断时,还是输出一大堆东西来了。看着不舒服。。。
 楼主| wyz365889 发表于 2012-3-6 10:49:43 | 显示全部楼层
本帖最后由 wyz365889 于 2012-3-6 11:00 编辑

我的解决办法:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
int main()
{
/*int fd;
fd = open("/sddisk/tmpfile",O_RDWR|O_CREAT);
if(fd==-1)
{
  printf("Read sdcard failure!");
}
else
{
  printf("Read sdcard success!");
}*/
    char ch[10];
    char cc ;
    char szBuff[256];
    short int i = 0;
    short int j = 0;
    FILE *fp;
    system("ls /dev/>/tmp/a.txt");
    fp = fopen("/tmp/a.txt", "r");
    while( !feof( fp ))
        {
  memset( szBuff, 0, 256 );
  fgets( szBuff, 256, fp );
  if(NULL != strstr(szBuff,"mmcblk")){
   printf("Read sdcard success!\n");
   break;
   }     
         }
fclose(fp);
system("rm /tmp/a.txt");
return 1;
}
TQ-lkp 发表于 2012-3-6 12:14:07 | 显示全部楼层
输出是自己加的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-12 04:36 , Processed in 1.078132 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表