반응형 Language67 C041_read함수 사용하기 시작하기에 앞서서 파일디스크립터에 대해 알아보도록 하겠습니다. 파일 디스크립터(File Descriptor)란? 리눅스 혹은 유닉스 계열의 시스템에서 프로세스(process)가 파일(file)을 다룰 때에 사용하는 개념입니다. 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값입니다. 이때 파일 디스크립터 양수 값으로 저장이 되며 0, 1, 2는 아래와 같은 이유로 사용되기 때문에 제외됩니다. 0 : 표준 입력(Standard Input) 1 : 표준 출력(Standard Output) 2 : 표준 에러(Standard Error) 이제 파일을 열어보도록 하겠습니다. open함수를 사용해서 파일을 열게 됩니다. open() 함수 헤더 : fcntl.h 형태 : int open(const char *.. 2023. 12. 28. C040_strlen 함수 구현해서 사용하기 우선 strlen함수를 사용해 봅시다. strlen은 문자열의 길이를 측정해 주는 함수입니다. #include #include int main() { printf("%d\n", (int)strlen("abcd")); return 0; } strlen은 어떤 자료형으로 출력을 할 것인지 정해주어야 합니다. 즉, 크기를 정해주어야 합니다. 저희가 이번에 만들 strlen함수는 int자료형을 반환해 주는 함수를 만들어 보도록 하겠습니다. strlen int OdOp_strlen(char *str) { int i; i = 0; while (str[i] != '\0') i++; return (i); } str문자열의 index를 기준으로 null문자가 나올 때까지 하나하나 읽습니다. null이 나온 인덱스 번호가.. 2023. 12. 8. C039_putnbr만들기 write함수만을 사용해서 정수형을 출력해 보도록 하겠습니다. OdOp_putnbr #include void OdOp_putnbr(int nb) { char c; int i; if (nb == -2147483648) { write(1, "-2147483648", 11); return ; } else if (nb 9) { i = nb / 10; OdOp_putnbr(i); nb = nb % 10; } c = nb + 48; write(1, &c, 1); } 우선 overflow가 나올 수 있는 부분을 처리해 주었습니다. 정수형 최솟값인 '-2147483648'을 양수로 바꾸게 된다면 overflow가 됩니다. 이를 방지.. 2023. 12. 6. C038_atoi 함수 구현해서 사용하기 atoi는 문자열을 입력받아 이를 정수형으로 변환해 주는 함수를 말합니다. 만약에 문자열에 공백들이 있으면 이를 제거해 주어야 합니다. 부호가 여러개가 있으면 '-'가 홀수이면 음수로 짝수이면 양수로 부호를 정해 주어야 합니다. 저희는 위의 역할을 해주는 함수를 OdOp_sign이라 정하겠습니다. OdOp_sign char *OdOp_sign(char *str, int *sign) { while (*str == 32 || (*str >= 9 && *str = '0' && *str 4 x 10 + 5 -> 45 x 10 + 6 -> 456 x 10 + 2 -> 4562 x 10 + 3 이렇게 진행을 합니다. 그리고 마지막에 sign을 곱해 출력값을 줍니다. 이제 OdOp_sign과 OdOp_number을 .. 2023. 12. 4. 이전 1 ··· 4 5 6 7 8 9 10 ··· 17 다음 반응형