Andante Tech
close
프로필 사진

Andante Tech

github: @Andante-Kim

  • ALL (57)
    • CS (16)
      • Linux (15)
      • Computer Architecture (1)
    • AI (8)
      • Theory (3)
      • ML Engineering (4)
      • Paper Review (1)
    • Computer Vision (7)
      • CS231N|Standford (3)
      • HEVC (4)
      • 디지털 영상처리 (0)
    • Skills (8)
      • Algorithms (1)
      • Data Analysis (6)
      • Git|Github (1)
    • Languages (18)
      • HTML&CSS (15)
      • JavaScript (1)
      • C&C++ (2)
      • Python (0)
    • Projects (0)
      • #1. (0)
    • Records (0)
  • HOME
  • TAG 🏷️
[Linux] 리다이렉션과 파이프

[Linux] 리다이렉션과 파이프

명령어 입출력 재지정의 구현파일 디스크립터의 복제: dup(), dup2(): 열려 있는 한 파일을 공유하기 위해 사용#include int dup(int oldfd);// oldfd에 대한 복제본인 새로운 파일 디스크립터를 생성하여 반환// 성공 시 복제되어 새로 생성된 파일 디스크립터 반환// 실패하면 -1을 반환int dup2(int oldfd, int, newfd);// oldfd을 newfd에 복제되어 복제된 새로운 파일 디스크립터를 반환// 즉, newfd를 통한 파일 접근이 oldfd를 통한 접근과 동일하게 됨// 성공시 newfd를, 실패하면 -1을 반환 실습: dup.c, dup2,cdup.c파일 포인터가 초기화되지 않았으므로 이어 씀실행 결과: HelloWorld#include #inc..

  • format_list_bulleted CS/Linux
  • · 2025. 12. 4.
[Linux] 프로세스 생성과 실행

[Linux] 프로세스 생성과 실행

프로세스 ID: 각 프로세스에 대한 식별 번호#include int getpid(void);// 현재 프로세스의 ID 반환int getppid(void);// 현재 프로세스의 부모 프로세스 ID 반환 실습: pid.c#include #include int main(void){ printf("pid = %d\n", getpid()); /* pid 가져오기 */ printf("ppid = %d\n", getppid()); /* ppid 가져오기 */ return 0;} 자식 프로세스의 생성 - fork() 시스템 호출 함수프로세스의 생성: fork(): 자신을 복제한 자식 프로세스를 새로 생성새 프로세스를 생성하는 유일한 방법부모 프로세스는 자식 프로세스 ID 반환생성된 자식 프로세스는 0 반환#includ..

  • format_list_bulleted CS/Linux
  • · 2025. 12. 2.
[Linux] 파일/디렉터리 다루기 with C

[Linux] 파일/디렉터리 다루기 with C

파일 정보 다루기inode: 파일에 대한 정보를 저장하는 구조체 파일의 상태 정보: i-node에 저장된 파일의 상태 정보 가져오기- 심볼릭 링크의 경우 stat()은 링크가 가리키는 파일에 대한 정보를, lstat()은 링크 자체에 대한 정보를 가져옴#include #include #include int stat(const char* pathname, struct stat* buf);int fstat(int fd, struct stat* buf);int lstat(const char* pathname, struct stat* buf);// 파일의 상태 정보를 가져와서 buf에 저장// 성공하면 0, 실패하면 -1을 저장 stat 구조체struct stat { dev_t st_dev; ..

  • format_list_bulleted CS/Linux
  • · 2025. 11. 27.
[Linux] 표준 라이브러리를 이용한 고수준 파일 입출력

[Linux] 표준 라이브러리를 이용한 고수준 파일 입출력

왜 굳이 시스템 호출이 있는데 라이브러리를 사용할까요? 가장 큰 이유는 이식성과 효율성입니다. 운영체제나 하드웨어가 바뀌어도 표준 라이브러리는 동일한 방법(스트림)으로 입출력을 제공합니다. 특히 중요한 건 버퍼(buffer)입니다. 시스템 호출을 직접 쓰면 매번 커널을 호출해야 해서 비효율적일 수 있어요. 하지만 표준 라이브러리는 내부에 버퍼를 두어 데이터를 모았다가 한 번에 처리함으로써, 느린 입출력 장치에 접근하는 횟수를 줄여 성능을 높여줍니다. FILE 구조체와 스트림 C언어 표준 라이브러리에서는 파일을 다루기 위해 FILE이라는 구조체를 제공합니다. FILE 구조체란 파일에 대한 정보(파일 디스크립터, 버퍼 상태, 위치 등)을 담고 있는 구조체이지요. 우리는 파일 디스크립터(정수) 대신, 이 FI..

  • format_list_bulleted CS/Linux
  • · 2025. 11. 20.
[Linux] 파일 접근 프리미티브

[Linux] 파일 접근 프리미티브

파일 접근 프리미티브파일: 연속된 바이트의 나열. 특정한 포맷이 정해져 있지는 않음(각 응용 프로그램에서 해석): 보조저장장치 뿐만 아니라 외부 입출력 장치에 대한 인터페이스 (e. 장치 파일) 시스템 호출(system call): 커널에 서비스 요청을 위한 인터페이스. 응용 프로그램은 시스템 호출을 통해 커널에 서비스를 요청 파일 접근 프리미티브(file access primitives): 커널에서 파일을 다루기 위해 제공되는 I/O 설비에 직접 접근을 제공하는 시스템 호출 함수들의 집합- 리눅스 I/O를 위한 기초적 요소를 형성. 다른 파일 접근 방식은 이에 기반함시스템 호출 함수용도open파일을 열거나 빈 파일 생성creat빈 파일 생성close열린 파일을 닫음read파일로부터 정보를 추출write..

  • format_list_bulleted CS/Linux
  • · 2025. 11. 18.
[Linux] 리눅스 시스템 프로그래밍 개요

[Linux] 리눅스 시스템 프로그래밍 개요

시스템 프로그래밍시스템 호출(system call): 커널 서비스(함수) 요청을 위한 인터페이스. 응용 프로그램은 시스템 호출을 통해 커널에 서비스를 요청 - 운영체제의 커널이 제공하는 다양한 서비스를 이용해 프로그램을 구현할 수 있도록 제공되는 프로그래밍 인터페이스 (운영체제마다 다름) - C언어의 함수를 호출하는 형식으로 이용 라이브러리(library): 유용한 함수들을 컴파일한 오브젝트 파일들의 묶음. 리눅스에서는 보통 /usr/lib에 저장됨 (libXXX.a 혹은 libXXX.so.VER)라이브러리 함수(library function) : 라이브러리에 포함된 함수표준 라이브러리 함수: 표준화된 인터페이스 제공 (리눅스의 표준 C 라이브러리: libc.so.6) 시스템 호출 vs. 표준 라이브..

  • format_list_bulleted CS/Linux
  • · 2025. 11. 13.
  • navigate_before
  • 1
  • 2
  • 3
  • navigate_next
공지사항
전체 카테고리
  • ALL (57)
    • CS (16)
      • Linux (15)
      • Computer Architecture (1)
    • AI (8)
      • Theory (3)
      • ML Engineering (4)
      • Paper Review (1)
    • Computer Vision (7)
      • CS231N|Standford (3)
      • HEVC (4)
      • 디지털 영상처리 (0)
    • Skills (8)
      • Algorithms (1)
      • Data Analysis (6)
      • Git|Github (1)
    • Languages (18)
      • HTML&CSS (15)
      • JavaScript (1)
      • C&C++ (2)
      • Python (0)
    • Projects (0)
      • #1. (0)
    • Records (0)
인기 글
전체 방문자
오늘
어제
Copyright © 안단테Andante 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바