Linux网络编程--自定义套接字描述符判定函数issockettype
来源:互联网 发布:西医综合网络课程 编辑:程序博客网 时间:2024/06/07 07:02
套接字描述符和通用文件描述符在形式上没有区别,那么如何判断一个文件描述符是否是套接字描述符呢?下面我们就简单的自定义一个函数issockettype,用于套接字描述符判定。
#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>int issockettype(int fd){ struct stat st; int err = fstat(fd, &st);//获得文件的状态 if( err < 0 ) { return -1; } if((st.st_mode & S_IFMT) == S_IFSOCK) { //利用系统宏,比较是否是套接字描述符 printf("套接字描述符\t"); return 1; } else{ printf("普通文件描述符\t"); return 0; }}int main(void){ int ret = issockettype(0);//查询标准输入是否是套接字描述符 printf("value %d\n",ret);//输出结果 int s = socket(AF_INET, SOCK_STREAM,0);//建立套接字描述符 ret = issockettype(s);//查询是否为套接字描述符 printf("value %d \n",ret);//输出结果 return 0;}
运行结果:
普通文件描述符 value 0
套接字描述符 value 1
1 0
- Linux网络编程--自定义套接字描述符判定函数issockettype
- Linux c 源码(issockettype:套接字描述符判定函数)
- linux网络编程之socket(十六):通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
- linux网络编程之socket(十六):通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
- linux网络编程之socket(十六):通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
- linux网络编程之socket(十六):通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
- LINUX网络编程--高级套接字函数
- UNIX网络编程——通过UNIX域套接字传递描述符和 sendmsg/recvmsg 函数
- Linux网络编程 套接字
- Linux网络编程 套接字
- Linux套接字网络编程
- Linux网络编程:6. 高级套接字函数
- Linux网络编程-学习笔记(基础TCP套接字函数)
- Linux网络编程--6. 高级套接字函数
- Linux网络编程--6. 高级套接字函数
- (六)Linux网络编程--6. 高级套接字函数
- Linux网络编程--套接字编程
- 【Linux网络编程】原始套接字编程
- hdu5113(dfs+剪枝)
- 安卓 NDK JNI 使用(五) -- so , jar 包
- demo1 JAVA笔记
- 循环队列
- jquery网页加载进度条NProgress.js
- Linux网络编程--自定义套接字描述符判定函数issockettype
- Ubuntu下 git 服务器的搭建。
- Android从网络上下载文件
- python学习笔记-(1)
- ubuntu 环境 gedit 支持中文
- <jumbot:flashupload id="flashUpload1" runat="server"> </jumbot:flashupload>
- 保利威视播放器函数接口汇总
- git conflict remove
- 【Cocos2dx】利用音量螺旋控件控制血量条