일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 지베르니
- 서울42
- 파리 피크닉
- push swap 설명
- ecole42
- 지베르니 계절 추천
- get next line
- 굿노트 스티커
- 42 libft
- 42 so_long
- push swap
- pipex
- 지베르니 여름
- gnl
- 포르투갈 여행
- ft_printf
- printf
- pipex 42
- str함수
- so_long
- 지베르니 가을
- 알고리즘 기초
- get_next_line
- 이지젯
- 42
- 와인 고르기
- libft
- 42 pipex
- 와인선별방법
- 에꼴42
- Today
- Total
뇌 마음 반반저장소
[42_libft] Part 2 (put 함수들과 fd) 본문
2. put 함수
일단 fd가 뭔지 한번 알아보자!
컴퓨터 프로그래밍 분야에서 파일 서술자(file descriptor) 또는 파일 기술자는 특정한 파일에 접근하기 위한 추상적인 키이다. feat 위키백과
말 그대로 그냥 필요한 파일을 불러오는 것이다. 처음에는 이게 이해가 안 됐는데 계속 쓸수록 이해가 되었다. 예를 들어서 [42] argc, argv 거 어떻게 쓰는 겁니까? 에서 설명한 것 처럼 argv는 셸에서 프로그램명 뒤에 써준 것들을 받아서 적용시켜준다고 했다. 그것처럼 fd는 참조되는 파일들 혹은 들어오는 문자열을 뜻한다.
아래처럼 작동시키면 된다.
./a.out hello
./a.out text.txt
2-1. ft_putchar_fd
putchar란?
Parameters : 매개 변수
c: The character to output.
c: 출력할 문자입니다.
fd: The file descriptor on which to write.
fd: 출력에 사용 될 fd입니다.
Return value : 반환 값
none
External functs. : 외부 기능
write
Description : 설명
Outputs the character ’c’ to the given file descriptor.
fd에서 받은 문자 'c'를 출력합니다.
함수 선언 원형
void ft_putchar_fd(char c, int fd);
!테스트 메인!
int main()
{
char word;
word = 'c';
ft_putchar_fd(word, 1);
write(1, "\n", 1);
return (0);
}
!테스트 결과!
$ ./main.out
c
2-2. ft_putstr_fd
putstr란?
Parameters : 매개 변수
s: The string to output.
s: 출력할 문자열입니다.
fd: The file descriptor on which to write.
fd: 출력에 사용될 fd입니다.
Return value : 반환 값
none
External functs. : 외부 기능
write
Description : 설명
Outputs the string ’s’ to the given file descriptor.
fd에서 받은 문자열 's'를 출력합니다.
함수 선언 원형
void ft_putstr_fd(char *s, int fd);
!테스트 메인!
int main()
{
char *str;
str = "hello baby developer!";
ft_putstr_fd(str, 1);
write(1, "\n", 1);
return (0);
}
!테스트 결과!
$ ./main.out
hello baby developer!
2-3. ft_putendl_fd
putendl란?
Parameters : 매개 변수
s: The string to output.
s: 출력할 문자열입니다.
fd: The file descriptor on which to write.
fd: 출력에 사용될 fd입니다.
Return value : 반환 값
none
External functs. : 외부 기능
write
Description : 설명
Outputs the string ’s’ to the given file descriptor followed by a newline.
fd에서 받은 문자열 's'를 출력하고 줄을 바꿉니다.
함수 선언 원형
void ft_putendl_fd(char *s, int fd);
!테스트 메인!
int main()
{
char *str;
str = "hello baby developer!";
ft_putendl_fd(str, 1);
return (0);
}
!테스트 결과!
$ ./main.out
hello baby developer!
2-3. ft_putnbr_fd
putnbr란?
Parameters : 매개 변수
n: The integer to output.
n: 출력할 정수입니다.
fd: The file descriptor on which to write.
fd: 출력에 사용될 fd입니다.
Return value : 반환 값
none
External functs. : 외부 기능
write
Description : 설명
Outputs the integer ’n’ to the given file descriptor.
fd에서 받은 숫자를 정수 'n'을 출력합니다.
이 함수는 피신에서 했던 ft_putnbr와 유사하다 (또 나왔네.. ㅎㅎ 안녕?) n을 write함수로 쓸 수 있게 하나씩 쪼개서 만든다.
함수 선언 원형
void ft_putnbr_fd(int n, int fd);
!테스트 메인!
int main()
{
int num;
num = 365;
ft_putnbr_fd(num, 1);
write(1, "\n", 1);
num = -365;
ft_putnbr_fd(num, 1);
write(1, "\n", 1);
return (0);
}
!테스트 결과!
$ ./main.out
365
-365
학교를 프로즌 한지 2주 하고 3일. 4일을 제외하고 눈만 뜨면 계속 libft를 쓰고 블로그를 작성했다. 12일이 걸린 걸 감안하면 나쁘지 않은 길이라고 생각한다. 그리고 처음에 마음먹었던 것처럼 스스로 코드를 작문해보고 메인 함수까지 만들면서 더욱더 구조가 익숙해졌다. (인과관계랄까 ㅎ) 이제 하루 쉬고 printf 프로젝트를 직접 만들러 가봐야겠다!
나 자신 파이팅!
이 글을 읽은 이웃님도 파이팅!
도움을 주고 싶으신 내용이나
틀린 내용이 있다면 댓글로 남겨주시고,
참고하신다면 꼭 출처를 밝혀주세요!
도움이 되었다면 공감 한 번씩 부탁드립니다❤️
'42 > libft' 카테고리의 다른 글
[42_libft] Part 2 (strmapi, striteri 함수포인터 알아보기) (0) | 2022.12.14 |
---|---|
[42_libft] Part 2 (itoa) (0) | 2022.12.13 |
[42_libft] Part 2 (split 자세한 설명) (1) | 2022.12.12 |
[42_libft] Part 2 (strtrim) (0) | 2022.12.11 |
[42_libft] Part 2 (substr, strjoin) (0) | 2022.12.11 |