fgets() 함수

C & C++ 관련 : 2009.08.20 19:39

char *fgets(char *s,int n,FILE *stream)

이라는 함수가 있다.

스트림에서 문자를 읽어와서 s에 기록하는 역할을 한다.

\n 문자를 만나거나 배열 s의 길이만큼 읽어들인다.

읽는 문자의 개수는 n이 상한선이고

자동으로 마지막에 NULL을 붙여줌으로써 바로 printf 등으로 쓸 수 있다.


최대 읽어들이는 문자는 n-1 이다. ㅠ.ㅠ



요즘 mp3 플레이어를 디코더만 사용해서 만들려고 하다보니.
보통 어려운게 아니다.
ID3 태그에 대해서도 찾아보고 MP3 포멧에 대해서도 찾아보고 @_@ ....

일단 MP3 를 AAU 단위로 쪼개야 하는것 같은데.

MP3 파일 앞에 ID3v2 태그가 붙어있어서 어디서부터가 AAU 인지를 모르겠다. ID3v2는 가변적 크기를 갖을 수 있단다. ㅠ
젠장 그래서 일단 ID3v1 추출하는것은 완성했고
ID3v2를 추출하는 것을 만든 다음에 MP3 재생을 시작할려고 하고 있다.

아무튼간 ID3v2를 파싱해서 써먹을라면 파일에서 한 바이트씩 읽어와야 하는데
fgets 의 사용법을 누구 말마따나 오해하고 있어서 젠장.
한참 헤메고 감으로 때려 맞췄는데. 레퍼런스에 저렇게 친절하게 자세히 설명 되어 있었던 것이다.

난 char 하나 선언하고
fgets(?, 1, FILE); 이라고 쓰면 되는줄 알았더니.

1이라고 쓰면 개뿔 하나도 못읽어온다. ㅠ.ㅠ 이것때문에 한 5분 고민했다. ㅠ.ㅠ

그냥 숫자 바꾸니까 되길래 아마 그럴것이다. 라고 생각하고 만들었는데

만들고 나서 정리하려고 찾으니까 저렇게 떡! 하니 설명되어 있는것을.... ㅠ


기본이 부족함을 느꼈다. ㅠ

'C & C++ 관련' 카테고리의 다른 글

uint8, uint16, uint32, uint64  (0) 2009.09.08
fgets() 함수  (2) 2009.08.20
_splitpath / 경로명에서 원하는 정보 분리하기  (0) 2009.08.10
gprintf debug routine syslog  (0) 2009.08.03
Posted by Real_G