티스토리 뷰

컴퓨터활용/리눅스

U2L프로젝트 ltoa 이슈

멜번초이 멜번초이 2020. 5. 26. 16:23

IBM이나 HP 유닉스에서 사용했던 ltoa 함수를 리눅스에서는 지원하지 않는다.
int형 변수의 값을 char 배열에 넣는 함수를 사용하고 싶다면 할 수 없이 sprintf() 함수를 사용하는 방법을 사용해야 한다. 하지만 ltoa() 는 바로 문자열 포인터를 return 받기 때문에 바로 사용하면 되었지만 sprintf() 를 사용할 경우 결과를 저장할 변수를 하나 선언해야하는 번거로움이 있다.

sprintf(버퍼,"형식지정자", 값)

예를들어,
long cnt = 400;
char str[100];
sprintf(str, "%ld", cnt );
라고 하면 버퍼에 문자열 400 이 들어간다. 프로그램내에서 빈번하게 사용된다면 매크로로 선언해 놓고 사용하는 것을 권장한다.

#define LTOA( _str, _num) do { \
sprintf( _str, "%ld", _num ); \
} while(0)

<매크로 사용예>

char str[100];
LTOA(str, 3000 );

'컴퓨터활용 > 리눅스' 카테고리의 다른 글

리눅스 디렉토리 사용량  (0) 2020.06.16
U2L프로젝트 문자열 이슈  (0) 2020.06.02
U2L프로젝트 ltoa 이슈  (0) 2020.05.26
U2L프로젝트 printf 이슈  (0) 2020.05.19
U2L 프로젝트 fclose() 이슈  (0) 2020.05.19
티맥스 서버가 수행중 죽을 때  (0) 2019.11.07
댓글
댓글쓰기 폼