해결된 질문
작성
·
176
·
수정됨
0
1.c언어 처음 코딩할떄
#include <<stdio.h>> 이거먼저 선언하잖아요
근데 헤더라는게 함수를 포함하는거로만 알고있는데요(printf scanf같은거)
근데 stdio 보니까 생각나는게 혹시 파일디스크립터랑 연관있나요?
헤더라는게 파일시스템이랑 연결하는거라도있나요?
파일시스템 관련 질문인데요일단 제가 만약
printf("hello") 라는 프ㅡ로그램을 만들었으면 실행을 하면 프로세스가 되겟지요
그리고 파일시스템으로 가려면 파일을 통해서 가는거라고 말하셨지만
혹시 더 정확히 말하면 파이프인가요? 유저와 커널을 연결하는게(리눅스에서는 파이프던 소켓이던 다 파일이잖아요) 그리고 드라이버랑 파일시스템 연결하는거도 파일인가요?
프로세스가 있으면 파일디스크립터가 있잖아요
근데 파일디스크립터와 파일시스템하고는 어떤관계인가요?
답변 1
0
C언어에서 헤더 파일은 함수를 포함하는 것이 아니라 주로 함수 원형선언을 포함합니다. 그리고 헤더와 파일 디스크립터는 별개입니다.
파이프는 프로세스간 통신 기법 중 하나입니다. 그리고 특수한 시스템 파일이기도 합니다. 더불어 '드라이버와 파일 시스템 연결'이라는 말은 질문 자체에 오류가 있습니다. 통상 드라이버라는 것은 장치 드라이버를 의미 하며 파일 시스템은 운영체제를 이루는 핵심 구성요소 중 하나 입니다. 그러니까 파일 시스템이 HDD 장치 드라이버와 연결될 수는 있겠습니다. 이 때 연결은 OS마다 다르지만 보통 관련 인터페이스 함수가 있습니다.
파일 디스크립터는 파일을 사용하기 위해 필요한 자료구조라고 보면 됩니다. 파일 시스템에 따라 포함되는 내용에 일부 차이가 있을 수 있겠으나 둘은 분리해 생각하는 것이 좋겠습니다.