새소식

컴퓨터공학 💻/시스템 프로그래밍

[시스템 프로그래밍] 시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제

  • -
시스템 호출3 : opendir(), readdir(), closedir(), lstat() 연습문제
01-01. 명령줄 인수로 받은 파일의 소유자와 그룹의 이름을 프린트하는 프로그램을 작성하라. 명령줄 인수로 한 개 이상의 파일을 받을 수 있어야 한다. getpwuid()와 getgrgid()를 사용하라.

[실행결과]

 

01-02. 파일의 이름들만 출력하는 프로그램을 작성하라. 디렉토리, 문자/블록장치, FIFO, 소켓, 심볼릭링크 등은 출력되지 않고 일반파일만 출력되어야 한다. 

[실행결과]

 

01-03. 사용자 옵션에 따라 필요한 정보만을 출력하는 프로그램을 작성하라. 적어도 -s, -F, -n 옵션은 처리되도록 한다. 쉘 명령 ls -s, ls -F, ls -n과 같은 출력을 내도록 한다. 출력되는 파일들의 순서는 상관없고, 날짜 표시 형식은 무시한다.

[실행결과] -s 옵션

print_stat  함수를 수정해서  2 번째 명령줄 인수의 값을 조건으로 비교하여  -s 인 경우  stat  구조체의 블록 수를  2 로 나눈 값과 파일명들이 출력되도록 하였다 .

[실행결과] -F 옵션

print_stat  함수와  type  함수를 수정해서  2 번째 명령줄 인수의 값을 조건으로 비교하여  -F 인 경우 파일명을 먼저 출력하고 그 뒤에  type 함수의 반환값을 출력하도록 하였다 .

[실행결과] -n 옵션

print_stat 함수를 수정해서 2번째 명령줄 인수의 값을 조건으로 비교하여 -n인 경우 기존의 printStat 함수의 출력 내용에서 uname과 gname만 uid와 gid로 변경하고 파일명을 출력하였다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.