디렉토리에서 특정 문자열로 시작하는 엔트리 읽어오기프로그래밍 노트/C&C++2015. 1. 22. 13:03
Table of Contents
반응형
디바이스 드라이버를 insmod 해서 올릴 때마다 디바이스 파일의 전체 경로의 중간 이름이 자꾸 바뀌어서 수동으로 계속 입력하기 힘들어서 간만에 시스템 프로그래밍 책을 꺼내 들고 짜봤습니다.
/sys/bus/w1/devices/28-000005e41463/w1_slave
/sys/bus/w1/devices/ 경로 아래에서 28-로 시작하는 엔트리를 읽어온 후 문자열을 조합하면 되는 군요. 진짜 간만에 하는 거라 좀 어설플지 모르지만 의도한대로 잘 동작합니다.
- #include <sys/types.h>
- #include <dirent.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- char* findDeviceName(char *path, char *devicename)
- {
- struct dirent *entry;
- DIR *dir;
- char* fulldevicename=malloc(1024);
- dir = opendir(path);
- while( (entry = readdir(dir)) != NULL )
- {
- if ( strncmp( entry->d_name, devicename, strlen(devicename) ) == 0 )
- {
- strcpy( fulldevicename, entry->d_name );
- closedir(dir);
- return fulldevicename;
- }
- }
- if ( !entry )
- perror( "readdir" );
- closedir(dir);
- return NULL;
- }
- int main()
- {
- char *path="/sys/bus/w1/devices/";
- char *fulldevicename;
- char fullpath[1024];
- if ( (fulldevicename=findDeviceName(path, "28-" )) != NULL )
- {
- strcpy( fullpath, path );
- strcat( fullpath, fulldevicename );
- strcat( fullpath, "/w1_slave" );
- printf( "%s\n", fullpath );
- }
- }
반응형
'프로그래밍 노트 > C&C++' 카테고리의 다른 글
C++ shared_ptr 예제, 사용방법 (0) | 2021.01.01 |
---|---|
C++ localtime 사용하여 현재 날짜, 시간 출력하기 (Windows/Linux) (0) | 2020.12.11 |
C++ - 터미널의 특정 위치에 문자열 출력하기 (0) | 2020.12.10 |
C++ 클래스에서 static 멤버변수 초기화 (0) | 2020.09.01 |
linux echo server ( pthread 사용 ) (0) | 2015.11.14 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!