리눅스에서는 일반 파일뿐만 아니라 장치, IPC, 소켓 등도 파일로 간주하여 동일한 인터페이스로 다룬다...! 이러한 개념은 모든 것은 파일이라는 유닉스 철학에서 비롯되었다.
파일 디스크립터는 운영체제로부터 파일에 대한 접근 권한을 부여받는 식별자이다.
파일 열기
int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);
Parameter
Return
파일 닫기
int close(int fd);
Parameter
Return
파일 디스크립터에서 파일 포인터 얻기
FILE *fdopen(int fd, const char *mode);
Parameter
Return
Java에서는 java.io.FileDescriptor
클래스를 통해 파일 디스크립터에 접근한다.
import java.io.*;
public class FileDescriptorExample {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("example.txt");
FileDescriptor fd = fos.getFD();
fos.close();
}
}
FileDescriptor
를 사용한다.FileInputStream
, FileOutputStream
등을 통해 얻는다.in
, out
, err
로 표현된다.C 언어에서 파일을 고수준에서 다루기 위한 자료형이다.
파일 열기
FILE *fopen(const char *pathname, const char *mode);
Parameter
Return
파일 닫기
FILE *fclose(FILE *stream);
Parameter
Return
파일 포인터에서 파일 디스크립터 얻기
int fileno(FILE *stream);
Parameter
Return
파일 디스크립터(File Descriptor)
open
함수로 파일을 열면 파일 디스크립터 반환, close
함수로 닫을 수 있다.파일 포인터(FILE Pointer)
fopen
함수로 파일을 열 수 있고, fclose
로 닫을 수 있다.fdopen
을 사용해 파일 디스크립터에서 파일 포인터를 반환받을 수 있고, fileno
를 사용해 파일 포인터에서 파일 디스크립터를 반환받을 수 있다.