'API 및 라이브러리'에 해당되는 글 26건

  1. 2009.04.03 memcpy(3)
  2. 2009.04.02 isatty(3)
  3. 2009.04.01 atexit(3)
  4. 2009.04.01 memset(3)
  5. 2009.03.31 malloc(3)
  6. 2009.03.31 strcpy(3)
  7. 2009.03.30 getenv(3) 1
  8. 2009.03.29 fclose(3)
2009. 4. 3. 01:16

NAME

 memcpy - 메모리 영역 복사하기

SYNOPSIS

 #include <string.h>

 void *memcpy(void *dest, const void *str, size_t n);


DESCRIPTION

 memcpy() 함수는 메모리 영역 str에서 메모리 영역 destn 바이트를 복사한다.
 메모리 영역은 겹쳐지지 않는다. 만일 메모리 영역을 겹쳐 쓰길 원한다면 memmove(3)를 사용해라.


RETURN VALUE

 memcpy() 함수는 포인터 dest를 반환한다.

CONFORMING TO

 SVID 3, BSD 4.3, ISO 9899

SEE ALSO

 bcopy(3), memccpy(3), memmove(3), strcpy(3), strncpy(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

getutent(3)  (0) 2009.12.17
ttyname(3)  (0) 2009.04.04
isatty(3)  (0) 2009.04.02
atexit(3)  (0) 2009.04.01
memset(3)  (0) 2009.04.01
Posted by devanix
2009. 4. 2. 00:45

NAME

 isatty - 이 기술자가 터미널을 지시하는지 검사한다.

SYNOPSIS

 
 #include <unistd.h>
 int isatty (int desc);


DESCRIPTION

 만일 desc가 터미널에 연결된 열린 기술자라면 1을 그렇치 않으면 0을 반환한다.

CONFORMING TO

 SVID, AT&T, X/OPEN, BSD 4.3

SEE ALSO

 fstat(2), ttyname(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

ttyname(3)  (0) 2009.04.04
memcpy(3)  (0) 2009.04.03
atexit(3)  (0) 2009.04.01
memset(3)  (0) 2009.04.01
malloc(3)  (0) 2009.03.31
Posted by devanix
2009. 4. 1. 11:47
NAME

 atexit - 정상적인 프로그램 종료시 호출될 함수 등록

SYNOPSIS

 #include <stdlib.h>

 int atexit(void (*function)(void));

DESCRIPTION

 atexit()함수는 exit(3) 를 통해서나, 프로그램의 main으로부터의 반환 값을 통해서 프로그램이 끝났을 때 호출 될
 function을 동록하는 것이다. 그렇게 등록된 함수는 그것들이 등록된 반대 순서로 호출된다. 어떤 변수도 지나치지 않는다.


RETURN VALUE

 atexit()함수는 성공했을 경우 0을 반환한다. 그렇지 않으면 -1 값을 반환한다.
 errno 은 실행되지 않는다.


CONFORMING TO

 SVID 3, BSD 4.3, ISO 9899

SEE ALSO

 exit(3), on_exit(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

memcpy(3)  (0) 2009.04.03
isatty(3)  (0) 2009.04.02
memset(3)  (0) 2009.04.01
malloc(3)  (0) 2009.03.31
strcpy(3)  (0) 2009.03.31
Posted by devanix
2009. 4. 1. 09:47

NAME

 memset - 메모리를 상수 바이트(constant byte)로 채운다.


SYNOPSIS

 #include <string.h>

 void *memset(void *s, int c, size_t n);
 



DESCRIPTION

 memset() 함수는 s가 가리키고 있는 메모리 영역의 처음 n 바이트를 상수 바이트 c로 채운다.


RETURN VALUE

 memset() 함수는 메모리 영역 s에 대한 포인터를 반환한다.


CONFORMING TO

 SVID 3, BSD 4.3, ISO 9899


SEE ALSE

 bzero(3), swab(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

isatty(3)  (0) 2009.04.02
atexit(3)  (0) 2009.04.01
malloc(3)  (0) 2009.03.31
strcpy(3)  (0) 2009.03.31
getenv(3)  (1) 2009.03.30
Posted by devanix
2009. 3. 31. 13:29


NAME


       calloc, malloc, free, realloc - 동적 메모리 할당 및 해제


SYNOPSYS


 #include <stdlib.h>

 void *calloc(size_t nmemb, size_t size);
 void *malloc(size_t size);
 void free(void *ptr);
 void *realloc(void *ptr, size_t size);



DESCRIPTION


 calloc()  함수는 원소의 크기가 size 바이트인 nmemb 개의 원소로 이루어진 배열을 위한 메모리를 할당하고
 할당된 메모리에 대한포인터를 반환한다.  메모리는 0 으로 설정된다.

 malloc() 함수는 size 바이트를 할당하고 할당된 메모리에 대한 포인터를 할당한다.  메모리를 클리어하지 않는다.

 free() 는 malloc(), calloc() 또는 realloc() 에 대한 호출시 반환되는 ptr 이 가리키는 메모리 공간을 해제한다.
 그렇지 않고, 만일 free(ptr) 가  전에 이미 호출되었다면, 정의되지 않은 행동이 일어난다. 
 만일 ptr 이 NULL 이라면, 어떤 작동도 행해지지 않는다.

 realloc() 함수는 ptr 이 가리키는 메모리 블럭의 크기를 size 바이트로 바꾼다.
 내용은 예전의 최소 크기에서 새 크기로 바뀌지 않는다. 새롭게 할당된 메모리는 초기화되지 않는다. 
 만일 ptr 이 NULL 이라면, 호출은 malloc(size) 과 동일하다; 만일 크기가 0 이라면, 호출은 free(ptr) 와 동일하다.  
 만약 ptr 이 NULL 이 아니라면, 이 함수는 malloc(), calloc() 이나 realloc() 에 대한 초기 호출시 반환되어야 한다.


RETURN VALUE


 calloc() 그리고 malloc()함수에서, 반환 값은 할당된 메모리를 가리키며, 이것은 어떤 종류의 변수를위해 적당히 정렬된다.
 만일 요구가 실패하면, NULL 이반환된다.
 
 free() 는 어떤 값도 반환하지 않는다.

 realloc() 은 새로 할당된 메모리를 가리키는 포인터를 반환하며 이 메모리는 어떤 종류의변수를 위해 적당히 정렬되며 ptr과는
 다를 것이다. 그렇지  않고, 만일 요구가 실패하거나 크기가 0 이라면 NULL 을 반환한다. 
 만일 realloc() 이 실패한다면 원래 블럭은 건드리지 않고 남아있다 -- 해제되거나 이동되지않는다.


CONFORMING TO


       ANSI-C


NOTES


 Unix98 표준은 실패시 errno 를 ENOMEM으로 설정하도록 malloc(), calloc(), 그리고 realloc() 을 요구한다.  Glibc는 이렇게  설정된 것으로 생각된다. ( 그리고 이 루틴들의 glibc 버전은 이것을 한다); 만일 여러분이 errno를설정하지 않는 개인적인  malloc 수행을 사용한다면, 라이브러리 루틴들은 errno를가지는 것 없이 이유없이 실패할 것이다.

 malloc(), free() 또는 realloc() 함수에서 크래쉬는 할당된 영역의 오버 플로우나 같은 포인터를 두번 해제 하는 것과같은 
 힙 오염과 항상 관련이 있다.

 Linux libc (5.4.23 이후)의 최근 버전과 GNU libc (2.x) 버전은 환경 변수를 통해조정할수 있는 malloc 수행을 포함한다.  
 MALLOC_CHECK_ 이 설정되었다면, 특별한 (덜 효율적이지만) 행동이 행해지며, 이것은 같은 인자를 가지고 free() 를 두번 호
 출하거나 단일 바이트(off-by-one 버그)의 초과 같은 간단한 에러에 대한안전을 위해 디자인되었다. 
 그러나 그런 에러들은 항상 보호되지는 않으며 메모리 누수가 생길 수 있다.  만일 MALLOC_CHECK_ 을 0 으로 설정하 면,
 발견된 힙 오염은 무시된다; 만일 1 로 설정하면, 진단은 stderr로 출력된다; 만일 2 로 설정하면, abort() 가 즉시 호출된다. 이것
 은 유용하다. 왜냐하면 크래쉬가 나중에 생길것이고문제의 원인을 찾아가는것이 매우 어려워지기 때문이다.


SEE ALSO


       brk(2)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

atexit(3)  (0) 2009.04.01
memset(3)  (0) 2009.04.01
strcpy(3)  (0) 2009.03.31
getenv(3)  (1) 2009.03.30
fclose(3)  (0) 2009.03.29
Posted by devanix
2009. 3. 31. 12:27


NAME


       strcpy, strncpy - 문자열 복사하기.

SYNOPSIS


 #include <string.h> 

 char *strcpy(char *dest, const char *src);

 char *strncpy(char *dest, const char *src, size_t n);
 


DESCRIPTION


 strcpy()  함수는 src(‘\0’ 문자를 포함)가 가리키는 문자열을 dest가 가리키는 배열에 복사한다. 
 문자열을 겹쳐지지 않으며 목적지 문자열 dest는 복사 받
을 정도로충분히 커야 한다.

 strncpy() 함수는 src의 n바이트만을 복사한다는 것을제외하고 비슷하다. 만일 src의 처음 n 바이트중 null이 없다면,
 결과는 null-종료가 안될수 있다.

 src 의 길이가 n보다작은 경우, dest 의 나머지는 null로 패드된다.

RETURN VALUE


       strcpy()strncpy() 함수는 목적지 문자열 dest에 대한포인터를 반환한다.

BUGS


 strcpy()의 목적지 문자열이 충분히 크지 않다면(즉, 프로그래머가어리석거나 게으르다면,
 복사하기 전에 크기를 검사하지 않을 것이다), 어떠한 일이 발생
할 수 있다.
 고정된 길이의 문자열 오버 플로우는 즐겨 쓰여지는 크래커 기술이다.

CONFORMING TO


       SVID 3, POSIX, BSD 4.3, ISO 9899

SEE ALSO


       bcopy(3), memccpy(3), memcpy(3), memmove(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

memset(3)  (0) 2009.04.01
malloc(3)  (0) 2009.03.31
getenv(3)  (1) 2009.03.30
fclose(3)  (0) 2009.03.29
exit(3)  (0) 2009.03.29
Posted by devanix
2009. 3. 30. 18:43
NAME

 getenv - 환경 변수를 가져온다.

SYNOPSIS

 #include <stdlib.h>
 
 char *getenv(const char *name);

DESCRIPTION

 getenv() 함수는 name이 가리키는 문자열과 일치하는 문자열을 찾기 위해 환경 변수리스트를 탐색한다.
 문자열은 name = value의 형태이다.

RETURN VALUE

 getenv() 함수는 환경변수에서 값에 대한 포인터를 반환하거나, 일치하는 것이 없다면 NULL을 반환한다.

CONFORMING TO

 SVID 3, POSIX, BSD 4.3, ISO 9899

SEE ALSO

 putenv(3), setenv(3), unsetenv(3), environ(5)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

malloc(3)  (0) 2009.03.31
strcpy(3)  (0) 2009.03.31
fclose(3)  (0) 2009.03.29
exit(3)  (0) 2009.03.29
getopt(3)  (0) 2009.03.28
Posted by devanix
2009. 3. 29. 17:50
NAME
 fclose - 열린 파일 스트림(stream)을 닫는다.

SYNOPSIS 

 #include <stdio.h>

 int fclose(FILE *fp);

DESCRIPTION 

fclose()함수는 stream으로 연결되어 있는 파일의 스트림 연결을 끊는다. 만약 닫고자 하는 스트림이 출력을 위해 열려져있던 스트림이라면 fflush(3)를 이용해서 버퍼에 있는 데이터를 모두 써야 한다. 

만약 닫혀진 stream에 대해서 fclose()가 다시 한번 실행된다면 어떤일이 일어날지 알 수 없다. 세그멘테이션 오류로 종료할 수도 있고, 그렇지 않고 계속 작동할 수도 있다. 프로그래밍을 할 때는 이점에 주의해야 한다.

RETURN VALUE

 성공하면 0을 리턴한다. 실패했을 경우는 EOF를 리턴하고 errno를 설정한다.

ERRORS

 EBADF    The file descriptor underlying fp is not valid.

The fclose() function may also fail and set errno for any of the errors
specified for the routines
close(2), write(2) or fflush(3).

CONFORMING TO

 C89, C99.

NOTES
 Note that fclose() only flushes the user space buffers provided by the C library.
 To  ensure
 that  the  data is physically stored on disk the kernel buffers must be
  flushed too, for exam
ple, with sync(2) or fsync(2).

SEE ALSO

  close(2), fcloseall(3), fflush(3), fopen(3), setbuf(3)

'API 및 라이브러리 > C 라이브러리 함수' 카테고리의 다른 글

malloc(3)  (0) 2009.03.31
strcpy(3)  (0) 2009.03.31
getenv(3)  (1) 2009.03.30
exit(3)  (0) 2009.03.29
getopt(3)  (0) 2009.03.28
Posted by devanix