UNIX 환경 프로 그래 밍 학습 1

2816 단어
1/etc/passwd 필드 별 의미
링크 ux 시스템 사용자 정보 /etc/passwd 이 암호 파일 은 7 개의 콜론 으로 분 단 된 필드 로 구성 되 어 있 습 니 다. 사용자 이름, 암호 화 암호, 사용자 ID, 사용자 그룹 ID, 주석 필드, 홈 디 렉 터 리, 셸 프로그램 입 니 다.... 와 같다
work:x:501:501::/home/work:/bin/bash

우리 가 역사적 인 이 유 를 알 게 되면 특정한 실현 기술 을 사용 하 는 원인 을 더욱 잘 이해 할 수 있 을 것 이다.
한 파일 이 여러 개의 하 드 연결 을 가지 고 있 을 때 여러 속성 던 전 간 의 동기 화 를 유지 하기 어렵다.
현재 파일 이름 은 최소 255 자 를 지원 합 니 다.
사선 으로 시작 하 는 경 로 는 절대 경로 이 며, 그렇지 않 으 면 상대 경로 이다.
Linux 에서 cc 는 보통 gcc 로 연 결 됩 니 다. /usr/bin/cc -> gcc
프로그램 에서 chdir () 를 사용 하여 작업 디 렉 터 리 를 변경 할 수 있 습 니 다. Python os.chdir('/home/work')
상대 디 렉 터 리 와 절대 디 렉 터 리
로그 인 할 때 작업 디 렉 터 리 는 실제 디 렉 터 리 이 고 암호 파일/etc/passwd 에 있 는 해당 사용자 의 로그 인 항목 입 니 다.
pid = fork () 
pid 는 0 과 같은 하위 프로 세 스 입 니 다.
fork 는 부모 프로 세 스에 새 프로 세 스 의 PID 를 되 돌려 주 고, 하위 프로 세 스에 대해 서 는 0 을 되 돌려 줍 니 다.fork () 는 한 번 호출 되 었 으 나 두 번 되 돌 아 왔 습 니 다.
exec 함 수 를 호출 할 때 새 프로 세 스 는 원래 프로 세 스 를 바 꿉 니 다.이런 방식 으로 프로그램 을 시작 하 다.spawn
부모 프로 세 스 는 하위 프로 세 스 를 기 다 려 야 합 니 다.waitpid (), 하위 프로 세 스 의 종료 상 태 를 가 져 옵 니 다.
프로그램 을 실행 하려 면 인삼 을 전달 하 는 것 을 고려 해 야 한다.
스 레 드 와 스 레 드 ID
보통 프로 세 스 는 하나의 제어 스 레 드 만 있 습 니 다. 
스 레 드 도 ID 로 표시 하지만 스 레 드 ID 는 프로 세 스 내 에서 만 작 동 합 니 다.
프로 세 스 모델 이 만들어 진 지 오래 되 어서 야 스 레 드 모델 이 UNIX 시스템 에 인용 되 었 다.
함수 오류 가 발생 하면 보통 마이너스 나 빈 지침 을 되 돌려 줍 니 다.
errno 가 잘못 되 지 않 았 다 면 그 값 은 다른 규칙 에 의 해 명확 하 게 밝 혀 지지 않 았 을 것 입 니 다. 따라서 오류 가 발생 했 을 때 만 errno 의 값 을 검사 합 니 다. errno 에서 오류 가 발생 했 을 수 있 기 때 문 입 니 다.
errno 의 모든 상수 가 0 이 아 닙 니 다.
#include
char * strerror( int errnum) ;
#include
void perror( const char *msg);
프로그램의 건장 성 개선: 이 문 제 는 절차 가 잘못 되면 프로그램 이 스스로 처리 하 라 는 것 이 냐, 아니면 인공 으로 처리 하 라 는 것 이 냐 하 는 것 이다.모든 오 류 를 프로그램 에 맡 기 면 절차 가 매우 복잡 해 지고 오류 판단 이 정상 적 인 업무, 예 를 들 어 공유 기 같은 절차 보다 훨씬 많 을 수 있다.이런 설 비 는 한 번 설치 하면 다시 유지 하지 않 기 때문이다. 
그러나 인터넷 프로그램 에 있어 서 사람 이 매일 출근 할 때 유지 할 수 있다 면 프로그램의 부담 을 크게 줄 이 고 일부 책임 을 내 어 정기 적 으로 검사 할 수 있다. 이것 은 인력 원가 의 상승 이다.결국 이것 은 저울질 하 는 일이 다.그러나 절차 의 논리 가 아무리 엄밀 하 더 라 도 필요 한 인력 검사 가 필요 하 다.인터넷 업무 중 에
사용자 ID 0 은 루트 사용자 입 니 다. 
Max OS 에서 슈퍼 사용 자 를 사용 하지 않 습 니 다. 켜 야 합 니 다.
그룹 파일/etc/group
그룹 ID 를 추가 하면 한 사용자 가 16 개 이상 의 그룹 에 가입 할 수 있 습 니 다.
kill 함수 로 신 호 를 보 냅 니 다. 이 프로 세 스 의 소유자 나 슈퍼 사용자 여야 합 니 다.
시간 값 은 달력 시간 과 프로 세 스 시간 으로 나 뉜 다.
달력 시간 은 1970 년 초 입 니 다.
프로 세 스 시간 은 시계 시간, 사용자 CPU 시간, 시스템 CPU 시간 을 포함한다.시간 으로 얻다.
리 눅 스 는 약 250 개의 시스템 호출 을 제공 했다.
필요 할 때, 우 리 는 라 이브 러 리 함 수 를 교체 할 수 있 지만, 시스템 호출 을 교체 할 수 없습니다.
사용자 코드 -- malloc (저장 할당 함수) -- sbrk (시스템 호출) -- 커 널
응용 프로그램 호출 라 이브 러 리 함수 + 시스템 호출 ,많은 라 이브 러 리 함수 가 호출 시스템 호출 입 니 다.
시스템 호출 은 보통 최소 인 터 페 이 스 를 제공 하고 라 이브 러 리 함 수 는 비교적 복잡 한 기능 을 제공한다.
프로 세 스 제어 시스템 호출 은 보통 사용자 가 직접 호출 합 니 다.
좋 은 책의 특징 은 힘 들 어 보이 지 않 는 다 는 것 이다.

좋은 웹페이지 즐겨찾기