C 프로그램으로 USB 메모리가 몇 개 마운트되어 있는지...

illos의 이미지

C 프로그램으로 USB 메모리가 몇 개 마운트되어 있는지 알아내는 것을 구현하려고 합니다.

혹시 힌트 있으면 좀 알려주시면 감사하겠습니다.

임베디드 시스템입니다. USB 장치 말고는 다른 것은 추가로 마운트될 수 없습니다.

/media/에 마운트되는 것은 무조건 USB 장치라고 생각해도 됩니다.

즉, mount | grep media | wc -l 의 명령 결과가 마운트된 USB 메모리의 갯수와 같다고 할 수 있습니다.

어떻게 하면 될까요?

ckbcorp의 이미지

pipe() 나 exec?() 계열 명령으로 안 되나요?

잘은 모르지만,
mount | grep media | wc -l <- 이 명령을 프로그램으로 실행해서 그 결과를 받아서 parsing 해서 쓰면 안되나요?

행복은 희생없이는 얻을 수 없는 것인가?
시대는 불행없이는 넘을 수 없는 것인가?

dorado2의 이미지

/etc/mtab 파일을

/etc/mtab 파일을 line별로 읽어서 media에 match 되는 string 갯수를 세도 되겠네요.

hwatk의 이미지

/media 디렉토리를 readdir()로 읽어서 수를 세거나..

/media 디렉토리를 readdir()로 읽어서 수를 세거나..
/proc/scsi/usb-storage 디렉토리를 읽어서 수를 세면 될것 같은데요.

sptech99의 이미지

FILE *setmntent(const char

FILE *setmntent(const char *filename, const char *type);
 
struct mntent *getmntent_r(FILE *fp, struct mntent *mntbuf,
                                  char *buf, int buflen);

위 함수 사용하시는게 편하겠네요.

illos의 이미지

다들 답변 감사합니다

모두들 감사합니다. 도움이 많이 되었습니다. 특히 hwatk님과 sptech99님께 감사드립니다.

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.