🌐
한국어
파일시스템 API#
OFFS는 Oasis 파일 시스템 이름입니다.
oasis::fs 네임스페이스에서 호출됩니다.
Oasis 파일시스템은 offs.fuse, mkfs.offs, fsck.offs 툴을 사용하여 관리됩니다. 응용 프로그램이 이들 명령어를 system이나 popen 함수 등을 이용하여 수행할 경우, 독립된 프로세스에서 진행하고 그 결과를 IPC를 통하여 처리하는 방식을 권장합니다. 파이프 IPC 예제를 참고합니다.
헤더 파일#
OasisFs.h
함수#
int32_t
setup
(
key_value_map_t &
parameters
)
OasisFS.h
Oasis가 OFFS를 초기화 합니다.
oasis::initialize를 호출했다면 이 함수를 호출할 필요 없습니다.
매개변수
parameters
OFFS 초기화에 필요한 key-value map입니다.
리턴값
- 0: 성공
- -1: 실패
OFFS 초기화에 필요한 key-value map은 아래와 같습니다.
키
기본값
필수
설명
offs-qsize-max
10240
파일시스템 내부의 쓰기용 Q 최대 크기를 지정합니다. KBytes 단위입니다. 메모리를 할당하지는 않습니다.
offs-disable
0
파일시스템을 사용하지 않습니다. "1"인 경우, 녹화나 재생 등의 컴포넌트에서 파일 저장과 읽기를 할 수 없습니다.
offs-overwrite-if-exist
1
같은 파일명의 파일이 있으면 덮어쓸지 여부를 지정합니다. 1값이면 덮어씁니다. 덮어쓰지 않을 경우, 이름을 변경하여 생성합니다.
offs-cache-size
0
파일시스템 내부의 읽기용 캐쉬 크기를 지정합니다. Kbytes 단위입니다. 0 값이면 사용하지 않습니다.
int32_t
cleanup
(
)
OasisFS.h
Oasis가 OFFS를 해제합니다.
oasis::finalize를 호출했다면, 이 함수를 호출할 필요 없습니다.
리턴값
- 0: 성공
- -1: 실패
int32_t
start
(
)
OasisFS.h
Oasis가 OFFS를 시작합니다.
oasis::initialize를 호출했다면 이 함수를 호출할 필요 없습니다. 이미 시작된 경우는 무시됩니다.
리턴값
- 0: 성공
- -1: 실패
void
stop
(
)
OasisFS.h
Oasis가 OFFS를 중단합니다.
oasis::finalize를 호출했다면, 이 함수를 호출할 필요 없습니다.
bool
isConnected
(
)
OasisFS.h
Oasis가 OFFS에 연결되었는지 확인합니다.
리턴값
- true: OFFS에 연결된 상태입니다.
- false: OFFS에 연결 안 된 상태입니다.
bool
isBusy
(
)
OasisFs.h
OFFS가 녹화 데이터를 쓰고 있는지 확인합니다.
리턴값
- true: 데이터를 쓰고 있습니다.
- false: 데이터를 쓰고 있지 않습니다.
void
clearStatusError
(
)
OasisFs.h
OFFS가 파일을 생성하거나 옮기거나 읽거나 쓰는 중 발생했던 오류를 클리어합니다. 클리어한 후에는 파일 시스템에 작업 요청을 진행할 수 있습니다.
int32_t
enableOffsOverwriteIfFileExists
(
bool
enable
)
OasisFs.h
파일 생성시 같은 이름의 파일이 폴더 내에 존재할 경우, 덮어 쓸지 여부를 지정합니다.
매개변수
enable
true이면 파일을 덮어 씁니다. false이면 고유이름으로 변경하여 저장합니다.
리턴값
- 0: 성공
- -1: 실패
int32_t
offsLockFile
(
const char *
file_path
)
OasisFs.h
지정한 파일을 삭제나 이동 시키지 못 하도록 락을 겁니다. 파일을 보관할 용도로 사용합니다.
매개변수
file_path
락을 걸 파일의 절대 경로입니다. 파일은 OFFS 마운팅된 경로 상에 존재해야 합니다.
리턴값
- 0: 성공
- -1: 실패
int32_t
offsUnlockFile
(
const char *
file_path
)
OasisFs.h
락 걸린 파일을 해제합니다.
매개변수
file_path
락을 해제할 파일의 절대 경로입니다. 파일은 OFFS 마운팅된 경로 상에 존재해야 합니다.
리턴값
- 0: 성공
- -1: 실패
int32_t
offsIsFileLocked
(
const char *
file_path
,
bool *
locked
)
OasisFs.h
파일이 락이 걸려 있는지 여부를 확인합니다.
매개변수
file_path
확인할 파일의 절대 경로입니다.
locked
OUT
락이 걸려 있으면
true를 리턴하고, 락이 걸려 있지 않으면 false를 리턴합니다.
리턴값
- 0: 성공
- -1: 실패
int32_t
offsGetLockedFileNames
(
const char *
dir_path
,
std::list<std::string> &
filenames
)
OasisFs.h
지정한 폴더에서 락 걸린 파일 목록을 얻습니다.
매개변수
dir_path
폴더 경로입니다.
filenames
OUT
파일 이름 목록을 리턴합니다.
리턴값
성공할 경우, 파일 개수를 리턴합니다. 실패할 경우, -1을 리턴합니다.
!!! Warning
이 함수를 사용하면 저장 장치를 다시 포맷해야 합니다.
int32_t
offsListFiles
(
const char *
dir_path
,
std::list<OffsListEntry> &
files
)
OasisFs.h
지정한 폴더의 파일 목록을 얻습니다. 일반 쉘 명령보다 각 파일에 대한 상세 정보를 얻습니다.
매개변수
dir_path
탐색할 폴더 경로입니다. 폴더 경로는 OFFS 마운팅 경로 상에 존재해야 합니다.
리턴값
성공하면 0을 리턴하고, 실패하면 음수의 errno 값을 리턴합니다.
int32_t
offsConfigLocalFormatInfo
(
const char *
folder_path
,
size_t
file_size
)
OasisFs.h
OFFS가 SD카드 장치 경로로 마운팅하지 않고 기기내 임시 폴더 공간을 사용할 경우, 해당 폴더의 포맷 환경 조건을 변경합니다. 폴더가 아직 OFFS 폴더 목록에 없는 파일을 생성하고 저장하는 경우, 파일의 최대 크기는 16MB 입니다.
매개변수
folder_path
폴더 경로입니다. 폴더 경로는 OFFS 마운팅 경로 상에 존재하지 않습니다.
file_size
변경할 파일 크기입니다. "0" 값을 지정하면 OFFS 폴더 목록에서 해당 폴더를 삭제합니다. 지정한 폴더가 존재하지 않으면 해당 폴더명과 폴더내 파일의 최대 크기 정보를 생성하여 OFFS 폴더 목록에 추가합니다.
리턴값
- 0: 성공
- -1: 실패
구조체#
struct
OffsListEntry
OasisFs.h
oasis::fs::offsListFiles API 호출 시 매개변수로 사용됩니다.
멤버 타입과 이름
설명
char filename_[]
파일 이름입니다. 최댁 길이는
OFFS_LIST_FILENAME_MAX 입니다.size_t size_
파일 크기입니다.
uint64_t created_
생성된 날짜입니다.
time_t 형으로 time과 localtime_r 함수를 이용하여 일시로 변환할 수 있습니다.uint64_t modified_
수정된 날짜입니다.
time_t 형으로 time과 localtime_r 함수를 이용하여 일시로 변환할 수 있습니다.int32_t seconds_
녹화 재생 시간입니다. 초단위입니다.
uint32_t flags_
0x00000001 값이면 현재 이 파일은 쓰는 중입니다. 그렇치 않으면 0 값입니다.파일명 길이는 OffsFs.h 에 아래와 같이 정의 되어 있습니다.
#define OFFS_LIST_FILENAME_MAX 128