에서 프로세스 간 통신 # 리눅스 # 번호 파이프 (파이프) - 일반 파이프 라인 파이프 , 우리는 쉽게, 단 하나의 단방향 전송입니다 첫째, 단면이 일반 파이프를 볼 수 있습니다 동안 표준 흐름 도관 익명 파이프 파이프 패키지의 시리즈. 파일 스트림을 돌려줍니다. 그러나 반환 파일 스트림 커서 / 오프셋 (오프셋)를 사용할 수 없습니다 등 등 lseek의로, 관련 기능을 .
버퍼는 다음과 같은 기능 표준 유동관 :
FILE* popen(char* command ,char* type);
명령 뾰족한 끝은 널 종료 문자열 쉘 명령을 포함하는 문자열 및 / 수행 -c 파라미터는 SH / 전송 함, 즉, 쉘 실행;
타입 : 읽기 쓰기 모드로, 상기 한 방향으로 만, 동시에 읽고 쓸 수있다.
- "R"명령의 표준 출력에 연결된 파일 포인터
- "W"명령의 표준 입력에 연결된 파일 포인터
int pclose(FILE* stream);
스트림 : 파일 스트림을 닫습니다.
는 popen 함수는 실제로 파이프 라인, 다음 단계로 이루어 작품의 일부 포장 작업입니다 :
- 파이프 라인 만들기.
- 자식 프로세스를 포크.
- 부모 - 자식 프로세스 닫기 불필요한 파일 설명.
- 함수의 간부 인 가족이라고합니다.
- 명령에 지정된 기능을 수행합니다.
실행 쉘에서 명령을 다음과 같이 구체적인 사용법은 "경고"| 그렙 | dmesg를 화장실 -l, 그 결과는 파일 스트림의 내용을 읽을 수있는 현재의 과정입니다 F 에 있습니다.
int get_warnings_count(void)
{
int warnings;
FILE *f;
f = popen("dmesg | grep \"WARNING:\" | wc -l", "r");
fscanf(f, "%d", &warnings);
fclose(f);
return warnings;
}
명령과 관련된 동작들의 일부는 쉘 따라서, 표준 유동 도관은 통상적으로 본 ...