Menentukan Sambungan Terminal atau Paip dalam C atau C
Apabila melaksanakan program, selalunya perlu untuk menentukan sama ada input standard (stdin ) disambungkan ke terminal atau paip. Perbezaan ini penting untuk memahami jenis input yang diterima oleh program dan melaraskan tingkah laku sewajarnya.
Analisis Masalah
Seperti yang diperhatikan, "python" berkelakuan berbeza bergantung pada sama ada ia dipanggil dari terminal atau melalui paip. Ini menunjukkan bahawa program mengesan kehadiran atau ketiadaan sambungan terminal.
Penyelesaian Pengesanan C atau C
Dalam C atau C , fungsi isatty boleh digunakan untuk tentukan sama ada deskriptor fail yang ditentukan merujuk kepada terminal atau tidak. Ia memerlukan deskriptor fail sebagai hujah, yang biasanya fileno(stdin) untuk stdin.
Contoh Kod
Berikut ialah contoh cara menggunakan isatty dalam C atau 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; }
Pada Windows, fungsi isatty dan fileno diawali dengan garis bawah, jadi kodnya menjadi:
#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; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Input Standard (stdin) ialah Terminal atau Paip dalam C atau C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!