반응형

2025/02 115

C 언어 표준 API - stdio.h의 파일 입출력 (fopen, fclose, fread, fwrite)

C 언어 표준 API - stdio.h의 파일 입출력 (fopen, fclose, fread, fwrite)C 언어에서 파일 입출력은 표준 라이브러리 를 통해 수행됩니다. 오늘은 파일을 열고 닫는 fopen, fclose 함수와, 파일에서 데이터를 읽고 쓰는 fread, fwrite 함수에 대해 살펴보겠습니다.1. fopen: 파일 열기fopen 함수는 파일을 열고, 해당 파일과 연관된 FILE 포인터를 반환합니다. 기본적인 사용법은 다음과 같습니다.#include int main() { FILE *fp = fopen("example.txt", "w"); if (fp == NULL) { perror("파일 열기 실패"); return 1; } printf("..

Bash Shell Script - 정규표현식과 grep

Bash Shell Script - 정규표현식과 grepLinux Bash 스크립트에서 강력한 텍스트 검색 및 처리 도구로 grep을 빼놓을 수 없습니다. 이 글에서는 정규표현식(Regular Expression)과 함께 grep을 활용하는 방법을 자세히 다룹니다. 정규표현식은 패턴 매칭을 위한 강력한 도구이며, grep은 파일 또는 문자열에서 이러한 패턴을 찾아주는 명령어입니다.1. 정규표현식이란?정규표현식은 텍스트에서 특정 패턴을 매칭하는 데 사용됩니다. 다음은 정규표현식의 기본 구성 요소입니다:1.1. 기초 패턴패턴설명.임의의 한 문자^문자열의 시작$문자열의 끝*앞 문자가 0번 이상 반복+앞 문자가 1번 이상 반복?앞 문자가 0번 또는 1번 등장[ ]문자 클래스``()그룹화1.2. 예제^Hello:..

기하 알고리즘 - 선분 교차와 볼록 껍질

기하 알고리즘 - 선분 교차와 볼록 껍질기하 알고리즘은 컴퓨터 그래픽스, 게임 개발, GIS 등 다양한 응용 분야에서 중요하게 사용되는 알고리즘입니다. 오늘은 그 중에서도 선분 교차와 볼록 껍질 문제에 대해 알아보고, Java와 C 언어를 이용하여 구현해 보겠습니다.선분 교차 (Line Segment Intersection)선분 교차 문제는 두 선분이 주어졌을 때, 이들이 교차하는지를 판별하는 문제입니다. 이를 해결하기 위해 다양한 기하학적인 알고리즘이 존재하며, 그 중 두 선분의 방향을 이용하여 판별하는 알고리즘을 살펴보겠습니다.두 선분이 교차하는지 확인하기 위해서는 다음과 같은 방법을 사용할 수 있습니다:선분의 끝점이 다른 선분의 어느 쪽에 위치하는지를 판별합니다.각 선분의 양 끝점에 대해 상대적인 ..

C 언어 표준 입출력 - `fputs`와 `fgets` 사용법

C 언어 표준 입출력 - fputs와 fgets 사용법C 언어에서 문자열을 다룰 때 표준 입출력 라이브러리인 stdio.h를 사용하면 다양한 입력 및 출력 기능을 활용할 수 있습니다. 그중에서도 fputs와 fgets 함수는 파일 및 표준 입력/출력 스트림에서 문자열을 다루는 데 매우 유용합니다. 이번 포스팅에서는 fputs와 fgets의 동작 방식과 예제 코드를 살펴보겠습니다.1. fputs 함수fputs 함수는 문자열을 출력 스트림(파일 또는 표준 출력)으로 출력하는 기능을 합니다. printf와 달리 서식 문자열을 지원하지 않으며, 개행 문자(\n)가 자동으로 추가되지 않습니다.fputs 함수의 프로토타입#include int fputs(const char *str, FILE *stream);매개변..

Bash Shell Script 로그 파일 작성 및 분석

Bash Shell Script 로그 파일 작성 및 분석Linux 환경에서 로그 파일을 작성하고 분석하는 것은 시스템 모니터링 및 디버깅에 매우 중요합니다. 이번 포스팅에서는 Bash 스크립트를 사용하여 로그 파일을 생성하고 이를 분석하는 방법을 알아보겠습니다.1. 로그 파일 작성하기로그 파일은 시스템에서 발생하는 이벤트를 기록한 파일로, Bash 스크립트로 손쉽게 생성할 수 있습니다. 다음은 로그 파일에 정보를 기록하는 간단한 예제입니다.기본 로그 작성 스크립트#!/bin/bash# 로그 파일 경로 설정LOG_FILE="/var/log/my_script.log"# 로그 작성 함수echo_log() { local message="$1" local timestamp=$(date "+%Y-%m-%..

그래프의 고급 탐색 - 강한 연결 요소 (Strongly Connected Components, SCC)

그래프의 고급 탐색 - 강한 연결 요소 (Strongly Connected Components, SCC)그래프 이론에서 강한 연결 요소(Strongly Connected Component, SCC)는 유향 그래프에서 특정 조건을 만족하는 노드 집합을 의미합니다. 이번 글에서는 SCC가 무엇인지 설명하고, 이를 찾기 위한 고급 알고리즘 두 가지 - Kosaraju 알고리즘과 Tarjan 알고리즘 - 을 Java와 C 예제로 구현해 보겠습니다.강한 연결 요소란?강한 연결 요소란 그래프의 모든 정점들이 서로 도달 가능한 부분 그래프를 의미합니다. 즉, 어떤 두 정점 (u, v)가 있다면, (u \rightarrow v)와 (v \rightarrow u) 경로가 모두 존재할 때 (u)와 (v)는 같은 SCC에 ..

C 표준 입출력 - `puts`와 `gets`

C 표준 입출력 - puts와 getsC 언어에서 표준 입출력(Standard I/O)을 담당하는 stdio.h 헤더 파일은 다양한 함수들을 제공하며, 그중에서 문자열 입출력을 다루는 puts와 gets는 많이 사용되는 함수입니다. 이번 포스팅에서는 puts와 gets의 동작 방식, 사용 예제, 그리고 주의해야 할 점에 대해 자세히 알아보겠습니다.1. puts 함수란?puts 함수는 문자열을 출력하는 함수로, 문자열을 출력한 후 자동으로 개행(newline)을 추가합니다.1.1 puts 함수의 정의int puts(const char *str);str: 출력할 문자열반환값: 출력이 성공하면 0 이상의 값, 실패하면 EOF (대개 -1)를 반환문자열 끝에 자동으로 개행 문자가 추가됨1.2 puts 함수의 사..

Bash Shell Script 디버깅 옵션: `set -x`와 `set -e` 사용법

Bash Shell Script 디버깅 옵션: set -x와 set -e 사용법Bash 스크립트를 작성하다 보면 예상치 못한 오류가 발생하거나, 코드의 흐름을 추적해야 할 때가 있습니다. 이럴 때 유용하게 사용할 수 있는 두 가지 디버깅 옵션이 있습니다: set -x와 set -e. 이번 글에서는 이 두 옵션의 기능과 사용법을 상세히 설명하고, 예제 코드를 통해 실전 활용법을 알아보겠습니다.1. set 명령어란?set 명령어는 Bash에서 셸 옵션을 설정하거나 해제할 때 사용하는 명령어입니다. 다양한 옵션 중 디버깅에 유용한 옵션은 -x와 -e입니다.주요 옵션-x: 실행되는 명령어를 터미널에 출력합니다. 스크립트의 실행 흐름을 파악할 때 유용합니다.-e: 명령어가 실패하면 즉시 스크립트를 종료합니다. 오..

분기 한정 알고리즘 (Branch and Bound)

분기 한정 알고리즘 (Branch and Bound)분기 한정 알고리즘(Branch and Bound)은 조합 최적화 문제를 해결하기 위한 일반적인 방법론으로, 많은 경우의 수를 탐색하여 최적의 해를 찾는 데 사용됩니다. 주로 NP-완전 문제에 사용되며, 대표적인 예로는 외판원 문제(TSP, Traveling Salesman Problem), 배낭 문제(Knapsack Problem) 등이 있습니다. 분기 한정 알고리즘은 상태 공간 트리를 이용하여 탐색을 수행하며, 최적 해를 구할 때 불필요한 경로를 가지치기(pruning)하여 효율성을 높입니다.이 글에서는 분기 한정 알고리즘의 기본 개념과 동작 원리를 설명하고, 자바와 C 언어를 사용하여 예제 코드를 제공합니다.분기 한정 알고리즘의 기본 개념분기 한정..

stdio.h 개요 및 기본 입출력 함수 `printf`, `scanf`

stdio.h 개요 및 기본 입출력 함수 printf, scanfstdio.h(Standard Input Output Header)는 C 언어에서 표준 입출력 기능을 제공하는 헤더 파일입니다. 이 헤더에는 파일 입출력 및 콘솔 입출력을 수행할 수 있는 다양한 함수들이 포함되어 있습니다. 오늘은 stdio.h의 개요와 기본적인 콘솔 입출력 함수인 printf와 scanf에 대해 살펴보겠습니다.1. stdio.h 개요C 언어에서 표준 입출력 기능을 수행하기 위해 헤더 파일을 포함해야 합니다. 이 헤더는 표준 입력(stdin), 표준 출력(stdout), 표준 오류(stderr)과 관련된 여러 함수를 제공합니다.주요 기능:콘솔 출력: printf, puts, putchar 등콘솔 입력: scanf, gets..

반응형