扫码关注官方订阅号
或者说,怎么知道stdout是否被重定向? 不管怎样,谢谢各位~
小伙看你根骨奇佳,潜力无限,来学PHP伐。
#include <sys/stat.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main() { struct stat st; fstat(STDOUT_FILENO, &st); if(S_ISCHR(st.st_mode)) fprintf(stderr, "terminal\n"); else if(S_ISREG(st.st_mode)) fprintf(stderr, "regular file\n"); else { //what ever } return 0; }
可以用fstat函数根据文件描述符来查看文件信息,然后判断是否重定向(查看inode number是否相同)。
示例程序在这里
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
可以用fstat函数根据文件描述符来查看文件信息,然后判断是否重定向(查看inode number是否相同)。
示例程序在这里