목차
- 이전 포스팅의 C 언어 fprintf 함수로 파일에 텍스트 쓰기 예제 학습 링크
- 이전 포스팅의 C 언어 fputs 함수를 활용하여 파일에 문자열 작성 예제 학습 링크
- 이전 포스팅의 C 언어 strdup 함수로 문자열 버퍼의 복제본 생성 예제 학습 링크
- C 언어 stdio.h의 rename 함수로 파일명 변경 예제
- C 언어 새로 변경된 파일명으로 텍스트 파일 읽고 출력 예제
이전 포스팅의 C 언어 fprintf 함수로 파일에 텍스트 쓰기 예제 학습 링크
이전 포스팅에서는 c언어에서 fprintf 함수를 사용하여 파일에 버퍼가 가리키는 문자열을 저장하는 예제에 대해 알아보았습니다. fprintf 함수는 일반적으로 문자열을 저장할 때 많이 사용하기도 하지만, 무조건 문자열을 파일에 저장하기 위해 쓰는 것만은 아닙니다. 포맷팅 문자열을 의미하기 때문에 16진수, 10진수 등의 숫자 값도 문자열로 변환하여 저장시킬 수 있습니다. 바이트 값은 아니지만 아스키 문자로 저장된다고 생각하시면 됩니다. 만약 c언어에서 fprintf 함수 활용 예제가 궁금하시다면 아래 링크를 참고하여 학습해주세요.
2023.07.20 - [C/stdio] - [C언어/C++] fprintf 함수를 활용한 파일 쓰기
이전 포스팅의 C 언어 fputs 함수를 활용하여 파일에 문자열 작성 예제 학습 링크
다음으로 이전 포스팅에서는 c언어에서 fputs 함수를 사용하여 파일에 문자열을 작성하는 방법에 대해 알아보았습니다. fputs 함수를 사용하면 라인 단위로 파일에 실시간 문자열을 저장시킬 수 있습니다. 보통은 fprintf 등의 함수를 사용하여 포맷팅 문자열을 저장하지만 fputs 처럼 이미 문자열 버퍼에 문자열의 값들이 모여있다면 이 함수를 활용할 수 도 있습니다.
2023.07.21 - [C/응용] - [C언어/C++] fputs 함수를 활용한 파일 쓰기
이전 포스팅의 C 언어 strdup 함수로 문자열 버퍼의 복제본 생성 예제 학습 링크
마지막으로 이전 포스팅에서는 c언어에서 strdup 함수로 문자열이 저장된 버퍼 자체를 복사하여 복제본 포인터를 생성하는 방법에 대해 알아보았습니다. duplicate 약자로서 문자열 버퍼를 복제한다는 의미를 가지고 있습니다. memcpy, strcpy, strcat 등의 문자열 제어 함수가 c언어에서는 많이 제공되고 있습니다. 하지만 strdup는 포인터 자체를 새로 복제하여 또 같은 크기의 메모리 공간을 가진 포인터에 똑같은 문자열을 복사합니다. 따라서 strdup 사용 후에는 반드시 free와 같은 리소스해제 함수로 메모리 공간을 반환해야합니다. 만약 c언어에서 strdup 함수 활용 예제가 궁금하시다면 아래 링크를 참고해주세요.
2023.07.26 - [C] - [C/C++] strdup 문자열 복사
C 언어 stdio.h의 rename 함수로 파일명 변경 예제
아래는 c언어에서 stdio.h 헤더에서 제공하는 rename 함수를 사용하여 로컬에 이미 저정된 파일명을 변경하는 예제입니다. 파일명이 변경되면 기존 파일명으로는 파일 접근이 불가능합니다.
#include <stdio.h>
int main() {
char oldName[] = "/tmp/data.txt";
char newName[] = "/tmp/renamed_data.txt";
// 파일명 변경
if (rename(oldName, newName) != 0) {
perror("파일명 변경 실패");
return 1;
} else {
printf("파일명이 성공적으로 변경되었습니다.\n");
}
return 0;
}
C 언어 새로 변경된 파일명으로 텍스트 파일 읽고 출력 예제
아래는 c언어에서 rename 함수로 파일명이 변경된 파일에 다시 접근하여 파일 내용을 읽고 출력하는 예제입니다.
#include <stdio.h>
#define MAX_LINE_LENGTH 100
int main() {
char filename[] = "/tmp/renamed_data.txt";
char line[MAX_LINE_LENGTH];
FILE *filePointer;
filePointer = fopen(filename, "r");
if (filePointer == NULL) {
perror("파일 열기 실패");
return 1;
}
while (fgets(line, MAX_LINE_LENGTH, filePointer) != NULL) {
printf("%s", line);
}
fclose(filePointer);
return 0;
}