얕 은 것 에서 깊 은 것 으로 c 고전 프로젝트 10 예

얕 은 것 에서 깊 은 것 으로 들 어 가 는 고전 프로젝트 10 예
독자 들 이 유 닉 스 아래 C 언어의 프로 그래 밍 을 능숙 하 게 파악 할 수 있 도록 본 처 는 10 개 항목 을 정선 하 였 으 며, 그 중에서 각 항목 에는 한 가지 또는 여러 가지 지식 점 이 포함 되 어 있다.독 자 는 이런 프로젝트 를 독립 적 으로 완성 해 야 한다. 이런 한편 으로 는 유 닉 스 에서 C 언어 프로 그래 밍 지식 에 대한 이 해 를 강화 할 수 있다. 다른 한편, 이곳 의 프로젝트 는 생산 실천 이나 그 자체 가 생산 프로젝트 이기 때문에 독 자 는 업무 에 직접 응용 할 수 있다.
C. 1 파일 시스템 관리자
이 항목 은 문자 인터페이스 에서 파일 시스템 을 관리 하 는 일련의 기능 을 포함한다. 예 를 들 어 디 렉 터 리 생 성, 디 렉 터 리 삭제, 이동 파일 삭제, 파일 삭제, 열 디 렉 터 리 조회, 파일 조회, 통계 디 렉 터 리 점용 공간 과 디스크 남 은 공간 보고 등 이다.이 항목 은 주로 파일 서브 시스템 과 관련 된 내용 을 다 루 었 다.
1. 디 렉 터 리 프로그램 mkdir 만 들 기
이 프로그램 은 지정 한 디 렉 터 리 를 만 듭 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
mkdir    

경로 가 없 을 때 디 렉 터 리 를 지정 할 때 프로그램 mkdir 는 현재 디 렉 터 리 에 이 디 렉 터 리 를 만 듭 니 다.경로 가 있 는 문자열 을 지정 할 때 프로그램 mkdir 는 각각 각 단계 의 디 렉 터 리 를 만 듭 니 다.
2. 디 렉 터 리 공간 rmdir 삭제
이 프로그램 은 지정 한 디 렉 터 리 를 삭제 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
rmdir    

지정 한 디 렉 터 리 에 파일 이 없 을 때 프로그램 rmdir 가 직접 삭제 합 니 다.지정 한 디 렉 터 리 에 파일 이 있 을 때 프로그램 rmdir 는 조작 자 에 게 디 렉 터 리 를 완전히 삭제 하 는 지 물 어보 고 긍정 적 인 대답 을 기다 린 후에 지정 한 디 렉 터 리 와 그 아래 의 모든 파일 을 삭제 합 니 다.
3. 열 디 렉 터 리 프로그램 ls
이 프로그램 은 지정 한 파일 의 속성 정보 나 지정 한 디 렉 터 리 에 있 는 모든 파일 속성 정 보 를 표시 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
ls1    

명령 행 매개 변수 에서 '파일 이름' 은 파일 의 경로 나 이름 을 지정 합 니 다. 이 프로그램 은 파일 권한, 링크 수, 사용자 이름, 그룹 이름, 길이, 생 성 날짜, 생 성 시간 과 파일 이름 을 포함 한 파일 속성 정 보 를 인쇄 합 니 다.지정 한 파일 이 디 렉 터 리 파일 이 라면 이 디 렉 터 리 에 있 는 모든 파일 정 보 를 인쇄 하고 파일 이 심 볼 릭 링크 파일 이 라면 링크 된 파일 을 인쇄 하 는 경로 와 이름 을 추가 합 니 다.
4. 파일 검색 프로그램 find
이 프로그램 은 지정 한 디 렉 터 리 에서 요구 에 맞 는 파일 을 검색 하고 결 과 를 인쇄 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
find          

그 중에서 조회 요 구 는 파일 권한, 링크 수, 사용자 이름, 그룹 이름, 길이, 생 성 날짜, 생 성 시간 또는 파일 이름 등 이 될 수 있 습 니 다.
5. 통계 디 렉 터 리 가 디스크 공간 을 차지 하 는 프로그램 du
이 프로그램 은 지정 한 디 렉 터 리 에서 각 파일 이 사용 하 는 파일 공간 과 총 계 를 통계 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
du    

프로그램 du 깊이 는 지정 한 디 렉 터 리 에 있 는 모든 디 렉 터 리 와 파일 을 옮 겨 다 니 며 모든 파일 이 사용 하 는 디스크 블록 을 가 져 오고 모든 하위 디 렉 터 리 에 있 는 모든 파일 이 사용 하 는 디스크 블록 수 를 집계 하 며 지정 한 디 렉 터 리 에 있 는 모든 파일 이 사용 하 는 디스크 블록 수 크기 를 집계 합 니 다.
6. 디스크 남 은 공간 프로그램 df 보고
이 프로그램 은 지정 한 디 렉 터 리 가 있 는 파일 시스템 의 현재 사용 가능 한 데이터 블록 수 와 사용 가능 한 i 노드 블록 수, 모든 데이터 블록 총수 와 모든 i 노드 블록 수 를 가 져 오고 현재 사용 가능 한 데이터 블록 의 비율 과 사용 가능 한 i 노드 블록 의 비율 을 통계 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
df     

그 중에서 명령 행 매개 변 수 는 통 계 를 기다 리 는 파일 시스템 을 지정 합 니 다. 디 렉 터 리 가 지정 되 지 않 으 면 현재 시스템 에 있 는 모든 mount 파일 시스템 의 남 은 공간 상황 을 되 돌려 줍 니 다.
C. 2 파일 관리자
이 항목 은 문자 인터페이스 에서 파일 을 관리 하 는 일련의 기능 을 포함한다. 예 를 들 어 파일 복사, 파일 삭제, 간단 한 인쇄 파일, 대화 형 인쇄 파일, 16 진 인쇄 파일 과 문자열 일치 등 이다.이 항목 은 주로 파일 서브 시스템 과 관련 된 내용 을 다 루 었 다.
1. 파일 복사 프로그램 cp
이 프로그램 은 원본 파일 을 대상 파일 출력 에 복사 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
cp1           

2. 파일 프로그램 rm 삭제
이 프로그램 은 지정 한 파일 을 디스크 에서 삭제 합 니 다. 명령 행 형식 은 다음 과 같 습 니 다.
rm      

3. 파일 cat 인쇄
이 프로그램 은 지정 한 파일 의 데이터 내용 을 일반 텍스트 형식 으로 인쇄 합 니 다. 명령 형식 은 다음 과 같 습 니 다.
cat1     

4. 대화 식 인쇄 파일 more
이 프로그램 은 화면 페이지 에 따라 지정 한 텍스트 파일 의 데이터 내용 을 인쇄 합 니 다. 사용 자 는 대화 형 입력 명령 으로 이전 페이지 나 뒤의 파일 내용 을 인쇄 할 수 있 습 니 다.
5. 16 진수 인쇄 파일 od
이 프로그램 은 지정 한 파일 의 데이터 내용 을 16 진법 으로 인쇄 합 니 다. 명령 형식 은 다음 과 같 습 니 다.
od     

출력 형식 인 스 턴 스 는 다음 과 같 습 니 다.
[0000000]:  7A 68 75 79 75 6E 78 69  
61 6E 67 68 75 70 69 6E  :zhuyunxianghupin
[0000022]:  67

6. 문자열 일치 grep
이 프로그램 은 지정 한 파일 에서 문자열 이 나타 나 는 위 치 를 조회 하고 인쇄 합 니 다. 명령 형식 은 다음 과 같 습 니 다.
grep                

지정 한 파일 이 일반 파일 일 때 프로그램 grep 는 이 파일 에 만 문자열 을 일치 합 니 다.디 렉 터 리 파일 을 지정 하면 프로그램 grep 는 이 파일 의 모든 파일 에 문자열 과 일치 합 니 다.
C. 3 프로 세 스 관리자
이 항목 은 문자 인터페이스 에서 프로 세 스 를 관리 하 는 일련의 기능 을 포함 합 니 다. 예 를 들 어 시스템 이 현재 실행 중인 모든 프로 세 스 정보, 시작 프로 세 스 와 프로 세 스에 신 호 를 보 내 는 등 입 니 다.이 프로젝트 는 유 닉 스 의 다 중 프로 세 스 와 신호 시스템 등 관련 내용 을 다 루 고 있 습 니 다.
1. 실행 프로 세 스 정보 ps 열거
이 프로그램 은 현재 실행 중인 모든 프로 세 스 의 속성 정 보 를 가 져 오고 인쇄 합 니 다. 속성 항목 은 프로 세 스 표지 번호, 부모 프로 세 스 표지 번호, 프로 세 스 가 최근 에 소모 한 CPU 자원, 프로 세 스 를 시작 하 는 시간, 프로 세 스 를 시작 하 는 터미널 번호, 프로 세 스 가 실제 CPU 를 사용 하 는 실행 시간, 프로 세 스 를 시작 하 는 이름 등 정 보 를 포함 합 니 다.
2. 프로 세 스 시작
한 프로 세 스에 서 다른 프로그램 을 시작 하고 시 작 된 프로 세 스 의 출력 정 보 를 실시 간 으로 가 져 와 서 이 정 보 를 모든 위치 에 인쇄 할 수 있 습 니 다.
3. 프로 세 스에 신호 보 내기
실행 중인 프로 세 스에 제어 메 시 지 를 보 냅 니 다.
C. 4 아 날로 그 데이터베이스 저장 항목
본 프로젝트 는 파일 시 뮬 레이 션 데이터베이스 의 표를 이용 하여 은행 카드 거래 내 역 을 저장한다.이미 알 고 있 는 모 은행 시스템 의 은행 카드 거래 흐름 은 다음 과 같은 고정 분리 문자열 형식 으로 저장 된다.
거래 날짜 | 은행 카드번호 | 거래 시간 | 일련 번호 | 거래 단말기 번호 | 금액 | 수수료 |...
여러 가지 원인 으로 인해 이 은행 의 카드 역사 거래 흐름 은 데이터 베이스 에 저장 할 수 없 기 때문에 이런 거래 내 역 을 파일 로 옮 겨 저장 해 야 하지만 '빠 른' 검색 속 도 를 유지 해 야 한다.따라서 우 리 는 다음 과 같은 규격 에 따라 카드 거래 내 역 서 류 를 설계 합 니 다.
1. 카드 거래 흐름 은 날짜 에 따라 각각 저장 되 고 파일 은 이 날짜 로 명명 된다.실제로 우 리 는 매일 하나의 파일 을 만들어 그날 의 거래 내 역 을 저장 할 수 있 을 뿐만 아니 라 하루 의 거래 흐름 을 여러 개의 파일 로 나 누 어 저장 할 수 있다.
2. 이 파일 을 정보 머리 부분, 색인 부분 과 데이터 부분 으로 나 눕 니 다.
(1) 정보 헤더 부분 은 파일 에 저 장 된 내 역 항목 의 실제 저 장 된 항목 수 를 지정 합 니 다.
(2) 색인 부분 은 은행 카드 번호 에 따라 어 릴 때 부터 큰 순서 로 은행 카드 거래 내 역 정보 색인 을 저장 했다. 그 중에서 각 줄 의 문 자 는 은행 카드 거래 색인 을 대표 하고 고정 적 으로 구 분 된 문자열 메시지 로 그 형식 은 다음 과 같다.
    |        

(3) 데이터 부분 에서 모든 줄 의 문 자 는 은행 카드 거래 내 역 정 보 를 지정 하 는데 그 형식 은 다음 과 같다.
거래 날짜 | 은행 카드번호 | 거래 시간 | 일련 번호 | 거래 단말기 번호 | 금액 | 수수료 |...
데이터 부분 은 카드 번호 에 따라 작은 순서 로 거래 내 역 정 보 를 저장 하고 모든 거래 내 역 은 색인 부분의 기록 에 대응 하 며 모든 내 역 은 파일 에 있 는 오프셋 량 은 색인 부분 에 기록 된다.
이 항목 은 기록 프로그램 과 읽 기 프로그램 을 포함 합 니 다. 그 중에서 기록 프로그램 은 외부 (예 를 들 어 데이터 베이스) 에서 은행 카드 내 역 을 읽 고 파일 에 저장 합 니 다. 읽 기 프로그램 은 파일 에서 은행 카드 거래 내 역 을 얻 습 니 다. 그의 대외 인 터 페 이 스 는 다음 과 같 습 니 다.
select  *  from line where accdate = "??" and accno = "??"

그 중에서 명시 적 인 은행 카드 명세서 중의 한 가지, 몇 가지 만 선택 할 수 있 습 니 다. 매개 변수 accdate 는 거래 날짜 이 고 매개 변수 accno 는 거래 카드 번호 이 며 거래 날짜 와 거래 카드 번 호 는 반드시 입력 해 야 합 니 다.
이 항목 은 주로 메시지 분석 과 파일 서브 시스템 에 관 한 내용 을 다 루 었 다.
C. 5 러시아 블록 프로 그래 밍
유 닉 스 문자 인터페이스 에서 러시아 블록 게임 을 실현 합 니 다. 본 프로젝트 는 생산 에서 유래 하지 않 은 유일한 프로젝트 로 주로 curses 라 이브 러 리 와 신호 에 대한 구체 적 인 내용 을 포함 합 니 다.
C. 6 IPC 대상 조작 프로그램 설계
이 프로젝트 는 명령 ipcs 와 명령 ipcrm 기능 을 조합 한 프로그램 을 설계 합 니 다. 메시지 큐, 신 호 량, 공유 메모리 등 IPC 대상 을 만 들 고 읽 기, 쓰기, 조회, 삭제 등 재 작업 을 할 수 있 습 니 다.이 프로젝트 는 주로 프로 세 스 간 통신 의 구체 적 인 내용 과 관련된다.
C. 7 조작 단말기 외부 장치 항목
생산 응용 중외 설 치 는 항상 단말기 에 연결 되 지만 서로 다른 외부 장치, 서로 다른 단말 기 는 서로 다른 조작 방법 을 가지 고 있 습 니 다. 편리 하 게 처리 하기 위해 본 프로젝트 는 서로 다른 단말기 와 외부 장치 의 조작 함 수 를 전문 적 인 동적 링크 라 이브 러 리 로 설계 하고 응용 프로그램 은 단말기 와 외부 장치 의 정 보 를 설정 하여 조작 할 때 해당 하 는 동적 라 이브 러 리 함수 로 조정 하여 실행 하면 됩 니 다.이 항목 은 주로 장치 파일 과 라 이브 러 리 함수 의 구체 적 인 내용 과 관련된다.
C. 8 채 팅 프로그램 백 스테이지
랜 에서 채 팅 을 하 는 백 스테이지 서비스 프로그램 을 설계 합 니 다. 이 는 사용자 로그 인, 채 팅 데이터 수신, 채 팅 데이터 전송 과 로그 인 종료 등 기능 을 포함 합 니 다. 본 프로젝트 는 주로 병렬 소켓 의 구체 적 인 내용 과 관련 됩 니 다.
C. 9 SOCK 5 프 록 시 프로젝트
문서 RFC 1928 은 SOCK 5 프 록 시 규칙 을 정 했 습 니 다. 이 프로젝트 는 이 문서 에 따라 SOCKS 를 지원 하 는 프 록 시 서버 를 설계 합 니 다.이 프로젝트 는 거의 유 닉 스 의 C 언어 프로 그래 밍 에 관 한 모든 지식 을 다 루 었 다.
C. 10 온라인 게임 백 스테이지 프로젝트
인터넷 보드게임 의 백 스테이지 서비스 프로그램 을 설계 하 는데 사용자 로그 인, 보드게임 초기 화, 카드 정보 수신 과 카드 정보 전송 등 기능 을 포함한다.이 프로젝트 는 거의 유 닉 스 의 C 언어 프로 그래 밍 에 관 한 모든 지식 을 다 루 었 다.

좋은 웹페이지 즐겨찾기