출처 : https://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html


Both user and system header files are included using the preprocessing directive ‘#include’. It has two variants:

사용자와 시스템 헤더 파일은 모두 사전 처리 지침 '#include'를 사용하여 포함된다. 두 가지 변형이 있다.

#include <file>

This variant is used for system header files. It searches for a file named file in a standard list of system directories. You can prepend directories to this list with the -I option (see Invocation).

이 변형은 시스템 헤더 파일에 사용된다. 시스템 디렉토리 표준 목록에서 파일 이름의 파일을 검색한다. -I 옵션을 사용하여 디렉터리를 이 목록에 미리 보낼 수 있다(초대 참고).

#include "file"

This variant is used for header files of your own program. It searches for a file named file first in the directory containing the current file, then in the quote directories and then the same directories used for <file>. You can prepend directories to the list of quote directories with the -iquote option.

이 변형은 당신 자신의 프로그램의 헤더 파일에 사용된다. 그것은 먼저 현재 파일이 들어 있는 디렉토리에서 파일 이름을 가진 파일을 검색한 다음, 인용문 디렉토리에서 그리고 나서 <파일>에 사용된 것과 동일한 디렉토리에서 검색한다. -iquote 옵션을 사용하여 디렉토리를 따옴표 디렉토리 목록에 미리 보낼 수 있다.

The argument of ‘#include’, whether delimited with quote marks or angle brackets, behaves like a string constant in that comments are not recognized, and macro names are not expanded. Thus, #include <x/*y>specifies inclusion of a system header file named x/*y.

인용 마크나 각도 괄호로 구분되어 있건 간에 '#include'의 주장은 그 논평에서 문자열 상수처럼 동작하며, 매크로 이름은 확장되지 않는다. 따라서 #include <x/*y>는 x/*y라는 시스템 헤더 파일의 포함을 명시한다.


However, if backslashes occur within file, they are considered ordinary text characters, not escape characters. None of the character escape sequences appropriate to string constants in C are processed. Thus, #include "x\n\\y" specifies a filename containing three backslashes. (Some systems interpret ‘\’ as a pathname separator. All of these also interpret ‘/’ the same way. It is most portable to use only ‘/’.)

그러나 파일 내에서 백슬래시가 발생하면 탈출 문자가 아닌 일반 텍스트 문자로 간주된다. C의 문자열 상수에 적합한 문자 탈출 시퀀스는 처리되지 않는다. 따라서 #include "x\n\y"는 3개의 백슬래시를 포함하는 파일 이름을 지정한다. (일부 시스템에서는 '\'를 경로 이름 구분 기호로 해석한다.) 이 모든 것들은 또한 '/'를 같은 방식으로 해석한다. '/'만 사용하는 것이 가장 휴대성이 좋다.)


It is an error if there is anything (other than comments) on the line after the file name.

파일 이름 뒤에 줄에 (주석 이외의) 것이 있으면 에러다.


번역 : 파파고 

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

Tag ", ">, #include

c multi threading으로 채팅 서버 클라이언트 구현중

컴파일 에러가 발생

물론 소스는 긁어다 붙이기 ㅎㅎ

server는 Ubuntu Server 14.04 LTS

gcc -o server server.c

gcc -o server server.c -lpthread 로 컴파일 시 문제 없음.

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

친구가 clrscr()이 안먹는다고 conio.h이 참조 안되는것 같다구 해서
찾아본 결과
비주얼스튜디오에선 지원하지 않고 자동으로 clrscr()기능을 해주기 때문에 사용할 필요도 없다고 한다

블로그 이미지

레몬도리 LemonDory

개발자의 이야기

Tag clrscr

참고로 이런 것도 있더군요.
개인적으로 fwrite에 락을 걸지 않는 버전이 있다는 것은 처음 알았습니다.

fwrite
http://msdn.microsoft.com/ja-jp/library/h9t88zwz%28VS.80%29.aspx

파일 쓰기를 할 때는 내부적으로 lock을 건다고 합니다. 그래서 lock을 걸지 않으려면 다른 이름의 fwrite(_fwrite_nolock)를 사용해야 한다고 합니다.

 

fclose
http://msdn.microsoft.com/ja-jp/library/fxfsw25t%28VS.80%29.aspx


fprintf
http://msdn.microsoft.com/ja-jp/library/xkh07fe2%28VS.80%29.aspx

 

C 런타임 함수와 Win32 API 함수
http://www.biwa.ne.jp/~chu2/laboratory/win32api.html

C 런타임 함수와 그것과 맵핑되는 Win32 API 함수 리스트를 볼 수 있습니다.

http://social.msdn.microsoft.com/Forums/ko-KR/visualcplusko/thread/3c3a5793-d1a2-4713-8a97-b1858854afa1/

블로그 이미지

레몬도리 LemonDory

개발자의 이야기