Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8dc6a48

Browse files
committed
Add '설계과제/2020/#P2_20162448/소스코드/' from commit '53f5888ee615a39bb58987ac43dba165bb7429de'
git-subtree-dir: 설계과제/2020/#P2_20162448/소스코드 git-subtree-mainline: f9bf6eb git-subtree-split: 53f5888
2 parents f9bf6eb + 53f5888 commit 8dc6a48

File tree

9 files changed

+1897
-0
lines changed

9 files changed

+1897
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Prerequisites
2+
*.d
3+
4+
# Object files
5+
*.o
6+
*.ko
7+
*.obj
8+
*.elf
9+
10+
# Linker output
11+
*.ilk
12+
*.map
13+
*.exp
14+
15+
# Precompiled Headers
16+
*.gch
17+
*.pch
18+
19+
# Libraries
20+
*.lib
21+
*.a
22+
*.la
23+
*.lo
24+
25+
# Shared objects (inc. Windows DLLs)
26+
*.dll
27+
*.so
28+
*.so.*
29+
*.dylib
30+
31+
# Executables
32+
*.exe
33+
*.out
34+
*.app
35+
*.i*86
36+
*.x86_64
37+
*.hex
38+
39+
# Debug files
40+
*.dSYM/
41+
*.su
42+
*.idb
43+
*.pdb
44+
45+
# Kernel Module Compile Results
46+
*.mod*
47+
*.cmd
48+
.tmp_versions/
49+
modules.order
50+
Module.symvers
51+
Mkfile.old
52+
dkms.conf
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# 확장자 규칙
2+
.SUFFIXES: .c .o
3+
.PHONY: clean
4+
5+
# Compiler
6+
CC = gcc
7+
# Compile option
8+
CFLAGS = -c -W -Wall -Wextra -g
9+
10+
# Execute program file
11+
TARGET = ssu_mntr
12+
# Source file
13+
SRCS = support.c monitoring.c prompt.c ssu_mntr.c
14+
# Object file
15+
OBJECTS = support.o monitoring.o prompt.o ssu_mntr.o
16+
# Header file
17+
HDRS = common.h monitoring.h prompt.h
18+
19+
# Execute program file generation
20+
$(TARGET): $(OBJECTS)
21+
$(CC) -o $(TARGET) $(OBJECTS)
22+
23+
$(OBJECTS): $(HDRS)
24+
$(CC) $(CFLAGS) $(SRCS)
25+
26+
# .c|.o를 만날 경우
27+
#.c.o:
28+
# $(cc) $(CFLAGS) $(SRCS)
29+
30+
# make all
31+
all:
32+
$(TARGET) clean
33+
34+
# make clean
35+
clean:
36+
rm -rf $(OBJECTS) $(TARGET)
37+
38+
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
#include <stdio.h>
2+
#include <stdlib.h>
3+
#include <unistd.h>
4+
#include <fcntl.h>
5+
#include <string.h>
6+
#include <ctype.h>
7+
#include <signal.h>
8+
#include <dirent.h>
9+
#include <time.h>
10+
#include <pthread.h>
11+
#include <sys/types.h>
12+
#include <sys/stat.h>
13+
#include <sys/prctl.h>
14+
#include <sys/time.h>
15+
16+
// 불 타입
17+
#ifndef true
18+
#define true 1
19+
#endif
20+
#ifndef false
21+
#define false 0
22+
#endif
23+
24+
// 표준 입출력 타입
25+
#ifndef STDOUT
26+
#define STDOUT 1
27+
#endif
28+
#ifndef STDERR
29+
#define STDERR 2
30+
#endif
31+
32+
// 명령어 타입
33+
#ifndef DELETE
34+
#define DELETE 1
35+
#endif
36+
#ifndef SIZE
37+
#define SIZE 2
38+
#endif
39+
#ifndef RECOVER
40+
#define RECOVER 3
41+
#endif
42+
#ifndef TREE
43+
#define TREE 4
44+
#endif
45+
#ifndef EXIT
46+
#define EXIT 5
47+
#endif
48+
#ifndef HELP
49+
#define HELP 6
50+
#endif
51+
#ifndef UNKNOWN
52+
#define UNKNOWN 7
53+
#endif
54+
55+
// 크기
56+
#define DATE_SIZE 10
57+
#define TIME_SIZE 8
58+
#define BUFFER_SIZE 256
59+
#define MAX_BUFFER_SIZE 1024
60+
#define MAX_INFO_SIZE 2048
61+
62+
// 디렉토리
63+
#define CHECK "check"
64+
#define TRASH "trash"
65+
#define TRASH_FILES TRASH "/files"
66+
#define TRASH_INFO TRASH "/info"
67+
#define LOG "log.txt"
68+
69+
// 모니터링 상태
70+
#define UNCHCK -1
71+
#define CHCKED 0
72+
#define CREATE 2
73+
#define MODIFY 3
74+
75+
// 형식
76+
#define YYMMDD_HHMMSS "%.4d-%.2d-%.2d %.2d:%.2d:%.2d"
77+
#define YYMMDD "%.4d-%.2d-%.2d"
78+
#define HHSS "%.2d:%.2d"
79+
#define PROMPT "20162448>"
80+
#define SECOND_TO_MICRO 1000000
81+
82+
// 권한
83+
#define DIR_MODE 0755
84+
85+
typedef struct ssu_fileNode{ // 모니터링 파일 목록 구조체
86+
char name[BUFFER_SIZE]; // 파일 이름
87+
struct stat attr; // 파일 상태 정보
88+
struct dirent **namelist; // 디렉토리 경우 하위 파일 목록
89+
struct ssu_fileNode *next; // 하위 디렉토리 파일 포인터
90+
struct ssu_fileNode *child; // 같은 레벨의 다음 파일 포인터
91+
int size; // 파일 크기
92+
int status; // 모니터링 확인 상태
93+
} file_node;
94+
95+
void prompt(void); // 프롬프트
96+
void monitoring(void); // 모니터링
97+
file_node* make_list(char *path); // 디렉토리 파일 목록 트리화
98+
file_node *make_node(void); // 노드 생성
99+
int count_size(file_node *head); // 디렉토리 크기 반환
100+
void free_list(file_node *head); // 파일 목록 구조체 메모리 할당 해제
101+
char *make_time_format(struct tm time); // 시간 형식 문자열 생성
102+
void ssu_runtime(struct timeval *begin_t, struct timeval *end_t); // 실행시간 출력

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /