SD 카드 리더가있는 데비안 리눅스 박스가 있습니다. SD 카드가없는 경우 파일 IO (한 지점까지)를 수행 할 수있는 것 같습니다. 내가 읽고있는 파일이 캐시에있는 파일이 아니라 카드에있는 파일인지 확인하는 방법이 필요합니다.SD 카드에 파일이 있는지 테스트했는데 캐시 된가요?
세부 사항 : I는 SD 카드에 파일을 넣어 읽어 경우
#!/bin/bash
if [-e "/media/usb3/disk_id"]
id=`cat /media/usb3/disk_id`
logger "disk id: $id"
else
logger "not there"
fi
나는 그것의 'disk_id'파일이있는 디스크를 삽입하면이 (IE 예상 된 동작을) 작동합니다. 그러나 내가 SD 카드를 제거하면 계속 작동합니다 ... 또는 파일이없는 다른 카드에 넣으십시오.
blkid -d /dev/null
을 사용하여 SD 카드의 유무를 감지 할 수 있지만 OS가 수행하는 캐싱 방법을 잘 모릅니다.
제안 사항?
당기기 전에 카드를 분리 했습니까? –
아니요. 테스트 케이스의 일부입니다. – ethrbunny
미디어가 제거되면 메모리 구조를 플러시하는 것은 OS에 달려 있습니다. OS가 거짓말 할 때 소프트웨어가 올바르게 작동 할 것이라고 합리적으로 기대할 수는 없습니다. –