본문 바로가기

Computer Science117

[UNIX/Linux] ep4+) 고수준 파일 입출력 함수 실습 ex1. 고수준 입출력함수를 사용하여 5개의 스트링을 받아들여 파일에 저장한 후, 화면으로 스트링 번호를 입력하면 파일에서 해당 스트링을 읽어 화면에 출력하는 부분을 for문을 사용하여 작성하라data file(testdata) : aaabbbcccdddeee $ ./test1aaa3ccc4ddd#include #include #include #include #define NSTRINGS 5#define STRSIZE 3char* strings[] = {"aaa", "bbb", "ccc", "ddd", "eee"};int main(int argc, char* argv[]) { int i, n; FILE* fp; char buf[STRSIZE], template[32]; if ((fp.. 2024. 10. 7.
[UNIX/Linux] ep4) 고수준 파일 입출력 https://claremont.tistory.com/entry/UNIXLinux-ep3-%EC%A0%80%EC%88%98%EC%A4%80-%ED%8C%8C%EC%9D%BC-%EC%9E%85%EC%B6%9C%EB%A0%A5 [UNIX/Linux] ep3) 저수준 파일 입출력ㅁ파일(file): 관련 있는 데이터의 집합으로, 저장 장치에 일정한 형태로 저장데이터를 저장하는 데는 물론 데이터를 전송하거나 장치에 접근하는 데도 사용특수 파일의 생성과 삭제 및 입출력은claremont.tistory.comhttps://claremont.tistory.com/entry/UNIXLinux-ep3-%EC%A0%80%EC%88%98%EC%A4%80-%ED%8C%8C%EC%9D%BC-%EC%9E%85%EC%B6%9C%EB.. 2024. 10. 7.
[UNIX/Linux] ep3+) 저수준 파일 입출력 함수 실습 ex1. 저수준 파일 입출력을 이용해 파일을 복사하는 프로그램을 작성하시오. 이때 파일명은 명령행 인자로 받는다../ex test.txt test.bak#include #include #include #include int main(int argc, char* argv[]) { if (argc != 3) { printf("Usage: ex1 src target\n"); exit(1); } int rfd, wfd, n; char buf[256]; rfd = open(argv[1], O_RDONLY); if (rfd == -1) { perror("Open "); exit(1); } wfd = open(argv[2].. 2024. 10. 2.
[UNIX/Linux] ep3) 저수준 파일 입출력 ㅁ파일(file): 관련 있는 데이터의 집합으로, 저장 장치에 일정한 형태로 저장데이터를 저장하는 데는 물론 데이터를 전송하거나 장치에 접근하는 데도 사용특수 파일의 생성과 삭제 및 입출력은 특수 파일별로 약간씩 차이가 있다  ㅁ저수준 파일 입출력: 시스템 호출(System Call)• 리눅스 커널의 시스템 호출을 이용해 파일 입출력을 수행• 시스템 호출을 이용하므로 파일에 좀 더 빠르게 접근할 수 있는 장점• 또한 바이트 단위로 파일의 내용을 다루므로 일반 파일뿐만 아니라 특수 파일도 읽고 쓸 수 있음• 바이트 단위로만 입출력을 수행 가능하므로 응용 프로그램 작성 시 다른 추가기능을 함수로 추가 구현 해야 함• 열린 파일을 참조할 때 파일 기술자(fd) 사용  ㅁ고수준 파일 입출력: C언어 표준 함수•.. 2024. 9. 30.
[UNIX/Linux] ep2+) 파일 함수 실습 ex1. 명령행 인자로 받은 파일의 크기를 알려주는 프로그램을 작성하시오#include #include #include #include #include int main(int argc, char* argv[]) { if (argc == 1) { printf("usage: ex1 filename\n"); exit(1); } struct stat statbuf; stat(argv[1], &statbuf); printf("SIZE = %d\n", (int)statbuf.st_size); return 0;}   ex2. 명령행 인자로 받은 파일의 종류를 출력하는 프로그램을 작성하시오#include #include #include #include #.. 2024. 9. 26.
[UNIX/Linux] ep2) 파일 다루기 ". 과 .. 은 모든 디렉터리에 항상 존재하는 파일 이름이며, 디렉터리가 생성될 때 자동적으로 포함된다" ㅁ디렉터리 허가- 읽기(r): 디렉터리 내의 파일이나 부디렉터리의 이름을 리스트- 쓰기(w): 디렉터리 내의 파일을 제거하거나 새로운 파일을 생성- 실행(x): cd 혹은 chdir 로 디렉터리 내부로 들어갈 수 있음  (리눅스 파일 함수)  [파일 정보 검색 함수] - inode 정보 검색stat() 함수로 검색한 inode 정보는 stat 구조체에 저장되어 리턴된다stat 구조체의 세부 구조는 man -s 2 stat 으로 확인할 수 있다 (stat은 status의 약자이다)struct stat { dev_t st_dev; // 파일이 저장되어 있는 장치의 번호를 저장 ino_t st.. 2024. 9. 24.
[UNIX/Linux] ep1+) 디렉터리 함수 실습 ex1. mkdir() 함수를 사용해 디렉터리를 2개(dir1, dir2) 만들고, 이 중 dir1은 rmdir() 함수로 삭제하고 dir2는 rename() 함수를 사용해 testdir로 바꾸는 프로그램을 작성하시오. (mkdir->rmdir->rename)#include #include #include int main() { if (mkdir("dir1", 0755) == -1) { perror("dir1"); exit(1); } if (mkdir("dir2", 0755) == -1) { perror("dir2"); exit(1); } if (rmdir("dir1") == -1) { perror("dir1"); .. 2024. 9. 20.
[UNIX/Linux] ep1) 디렉터리 다루기 리눅스에서는 파일을 일반 파일과 특수 파일, 디렉터리 세 가지로 구분한다디렉터리는 해당 디렉터리에 속한 파일을 관리하는 특별한 파일이다 1. 일반 파일(-): 우리가 흔히 아는 데이터를 저장하는 파일e.g. 텍스트 파일, 실행 파일, 프로그램 파일, 라이브러리, 이미지 파일 등과 같은 사용자가 읽거나 수정할 수 있는 파일들  2. 특수 파일: 하드웨어 장치나 프로세스와의 인터페이스를 제공하는 파일 (운영체제와 하드웨어 간의 인터페이스 역할)하드웨어 장치(예: 키보드, 마우스, 디스크)와 상호작용할 수 있도록 시스템 자원에 대한 접근을 제공한다리눅스에서는 주로 /dev 디렉터리에서 특수 파일들을 확인할 수 있다블록 특수 파일(b): 디스크와 같은 장치에서 데이터를 블록 단위로 처리문자 특수 파일(c): 키.. 2024. 9. 11.
오픈소스 터미널 에뮬레이터(PuTTY, Termius, MobaXterm) ㅁ PuTTY: 오픈소스 터미널 에뮬레이터SSH, Telnet, Rlogin과 같은 원격 프로토콜을 지원한다. macOS는 기본 터미널로 SSH접속이 가능하지만, Windows 같은 경우는 불가능해서 Windows에서 SSH 접속을 위해 많이 사용한다. 그래서 네트워크 관리자, 개발자, 시스템 관리자 등이 원격 서버에 접속하고 관리하는 데 자주 사용된다.※ Windows 10부터는 cmd로도 SSH접속이 가능하다고 한다 근데 그렇다고 해서 맥북이 PuTTY를 무조건 설치 안 해도 되는 것이 아니다. PuTTY와 같은 툴을 사용하면 얻을 수 있는 이점이 많다.PuTTY와 같은 툴 설치의 이점:세션 관리:PuTTY는 다양한 세션 프로파일을 저장하고 관리할 수 있는 기능을 제공합니다. 이를 통해 여러 서버에 .. 2024. 9. 4.