C 또는 C에서 터미널 또는 파이프 연결 확인
프로그램을 실행할 때 표준 입력(stdin)인지 확인해야 하는 경우가 종종 있습니다. )은 터미널이나 파이프에 연결됩니다. 이러한 구별은 프로그램이 수신하는 입력 유형을 이해하고 이에 따라 동작을 조정하는 데 중요합니다.
문제 분석
관찰한 바와 같이 "python"은 입력 유형에 따라 다르게 동작합니다. 터미널이나 파이프를 통해 호출됩니다. 이는 프로그램이 터미널 연결 유무를 감지한다는 것을 나타냅니다.
C 또는 C 감지 솔루션
C 또는 C에서 isatty 함수를 사용하여 다음을 수행할 수 있습니다. 지정된 파일 설명자가 터미널을 참조하는지 여부를 확인합니다. 이는 일반적으로 stdin의 경우 fileno(stdin)인 파일 설명자를 인수로 사용합니다.
예제 코드
다음은 C에서 isatty를 사용하는 방법에 대한 예입니다. 또는 C :
#include <stdio.h> #include <io.h> // For _isatty and _fileno on Windows int main() { if (isatty(fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); } return 0; }
Windows에서는 isatty 및 fileno 함수 앞에 다음이 붙습니다. 밑줄이 있으므로 코드는 다음과 같습니다.
#include <stdio.h> #include <io.h> int main() { if (_isatty(_fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); } return 0; }
위 내용은 C 또는 C에서 표준 입력(stdin)이 터미널인지 파이프인지 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!