C,C++ & Linux

리눅스 시스템 프로그래밍 기본 명령어 모음

KyooDong 2020. 4. 6. 20:52
728x90

파일 입출력

 

open

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int open(const char* pathname, int oflag);
int open(const char* pathname, int oflag, mode_t mode);

// 리턴값 : 성공 시 파일 디스크립터, 에러 시 -1 (errno 설정)

 

close

#include <unistd.h>

int close(int fd);

// 리턴 값 : 성공 시 0, 에러 시 -1 (errno 설정)

creat

#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int creat(const char* pathname, mode_t mode);

// 리턴 값 : 성공 시 0, 에러 시 -1 (errno 설정)

lseek

#include <unistd.h>
#include <sys/types.h>

off_t lseek(int fd, off_t offset, int whence);

// 리턴 값 : 성공 시 파일 오프셋, 에러 시 -1 (errno 설정)

read

#include <unistd.h>
#include <sys/types.h>  // unistd.h 에도 ssize_t 가 선언되어 있긴함

ssize_t read(int fd, void* buf, size_t nbytes);

// 리턴 값 : 성공 시 읽어들인 데이터 바이트 수, 파일의 끝에 도달 한 경우 0, 에러 시 -1 (errno 설정)

write

#include <unistd.h>
#include <sys/types.h>

ssize_t write(int fd, const void* buf, size_t nbytes);

// 리턴 값 : 성공 시 기록된 바이트 수, 실패 시 -1 (errno 설정)

pread

#include <unistd.h>
#include <sys/types.h>

ssize_t pread(int fd, void* buf, size_t nbytes, off_t offset);

// 리턴 값 : 성공 시 읽어들인 데이터의 바이트 수, 파일의 끝에 도달한 경우 0, 에러 시 -1 (errno 설정)

pwrite

#include <unistd.h>
#include <sys/types.h>

ssize_t pwrite(int fd, const void* buf, size_t nbytes, off_t offset);

// 리턴 값 : 성공 시 기록된 데이터의 바이트 수, 에러 시 -1 (errno 설정)

dup

#include <unistd.h>

int dup(int fd);

// 리턴 값 : 성공 시 새로운 파일디스크립터, 에러 시 -1 (errno 설정)

dup2

#include <unistd.h>

int dup2(int fd1, int fd2);

// 리턴 값 : 성공 시 새로운 파일디스크립터 fd2, 실패 시 -1 (errno 설정)

sync

#include <unistd.h>

void sync();

fsnyc

#include <unistd.h>

int fsync(int fd);

// 리턴 값 : 성공 시 0, 에러 시 -1 (errno 설정)

fdatasync

#include <unistd.h>

int fdatasync(int fd);

// 리턴 값: 성공 시 0, 에러 시 -1 (errno 설정)

파일속성

stat

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

int stat(const char* restrict pathname, struct stat* restrict buf);

// 리턴 값: 성공 시 0, 에러 시 -1 (errno 설정)

fstat

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

int fstat(int fd, struct stat* buf);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

lstat

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>

int lstat(const char* pathname, struct stat* buf);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

access

#include <unistd.h>

int access(const char* pathname, int mode);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

umask

#include <sys/types.h>
#include <sys/stat.h>

mode_t umask(mode_t c_mask);

// 리턴 값: 이전의 umask 값

chmod

#include <sys/stat.h>

int chmod(const char* pathname, mode_t mode);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

fchmod

#include <sys/stat.h>

int fchmod(int fd, mode_t mode);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

chown

#include <unistd.h>

int chown(const char* pathname, uid_t owner, gid_t group);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

fchown

#include <unistd.h>

int fchown(int fd, uid_t owner, gid_t group);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

lchown

#include <unistd.h>

int lchown(const char* pathname, uid_t owner, gid_t group);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

truncate

#include <unistd.h>
#include <sys/types.h>

int trucate(const char* pathname, off_t length);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

ftruncate

#include <unistd.h>
#include <sys/types.h>

int ftruncate(int fd, off_t length);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

link

#include <unistd.h>

int link(const char* existingpath, const char* newpath);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

unlink

#include <unistd.h>

int unlink(const char* pathname);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

remove(3)

#include <stdio.h>

int remove(const char* pathname);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

rename(2)

#include <stdio.h>

int rename(const char* oldname, const char* newname);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

symlink

#include <unistd.h>

int symlink(const char* actualpath, const char* sympath);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

readlink

#include <unistd.h>

ssize_t readlink(const char* pathname, char* buf, size_t bufsize);

// 리턴 값: 성공 시 읽은 바이트 수, 에러 시 -1 (errno 설정)

mkdir

#include <sys/stat.h>
#include <sys/types.h>

int mkdir(const char* pathname, mode_t mode);

// 리턴 값: 성공 시 0, 실패 시 -1 (errno 설정)

rmdir

#include <unistd.h>

int rmdir(const char* pathname);

// 리턴 값: 성공 시 0, 에러 시 -1 (errno 설정)

opendir(3)

#include <sys/types.h>
#include <dirent.h>

DIR* opendir(const char* name);

// 리턴 값: 성공시 디렉토리 포인터, 에러 시 NULL (errno 설정)

readdir(3)

#include <dirent.h>

struct dirent* readdir(DIR* dp);

// 리턴 값: 성공 시 dirent 포인터, 디렉토리의 끝 또는 에러 시 NULL (에러시에만 errno 설정)

rewinddir(3)

#include <dirent.h>
#include <sys/types.h>

void rewinddir(DIR* dp);

closedir(3)

#include <dirent.h>
#include <sys/types.h>

int closedir(DIR* dp);

// 리턴 값: 성공 시 0, 에러 시 -1 리턴 (errno 설정)

telldir(3)

#include <dirent.h>

long telldir(DIR* dp);

// 리턴 값: 성공 시 디렉토리 내에서의 현재 위치, 에러 시 -1 (errno 설정)

seekdir(3)

#include <dirent.h>

void seekdir(DIR* dp, long loc);

chdir

#include <unistd.h>

int chdir(const char* pathname);

// 리턴 값: 성공 시 0, 에러 시 -1 (errno 설정)

fchdir

#include <unistd.h>

int fchdir(int fd);

// 리턴 값: 성공 시 0, 에러 시 -1 (errno 설정)

getcwd

#include <unistd.h>

char* getcwd(char* buf, size_t size);

// 리턴 값: 성공 시 현재 작업 디렉토리 pathname, 에러 시 NULL (errno 설정)

get_current_dir_name

#include <unistd.h>

char* get_current_dir_name();

// 리턴 값: 성공 시 현재 작업 디렉토리 pathname, 에러 시 NULL (errno 설정)

시간

utime

#include <utime.h>
#include <sys/types.h>

int utime(const char* pathname, const struct utimbuf* times);

// 성공 시 0, 실패 시 -1 (errno 설정)

time

#include <time.h>

time_t time(time_t* tloc);   // time_t = long int

// 리턴 값: 성공 시 시간을 second로만 표현한 값, 에러 시 -1 (errno 설정)