打印当前机器是小头派还是大头派类型
注意,如果没有加这两个头文件
#include <stdio.h>
#include <stdlib.h>
编译时候会报 警告:隐式声明与内建函数‘printf’不兼容 这个错误
编译: gcc -o byteorder byteorder.c
#include <stdio.h> #include <stdlib.h> int main(int argc,char **argv) { union { short s; char c[sizeof(short)]; }un; un.s=0x0102; if(sizeof(short) ==2) { if(un.c[0]==1 && un.c[1]==2) { printf("big-endian\n"); } else if(un.c[0]==2 && un.c[1]==1) { printf("little-endian\n"); } else { printf("unknown\n"); } } else { printf("sizeof(short) = %d\n",sizeof(short)); } return 0; }
10进制ip到二进制转换的例子
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <netinet/in.h> int main (void) { char IPdotdec[20]; //存放点分十进制IP地址 struct in_addr s; // IPv4地址结构体 // 输入IP地址 printf("Please input IP address: "); scanf("%s", IPdotdec); // // 转换 inet_pton(AF_INET, IPdotdec, (void *)&s); printf("inet_pton: 0x%x\n", s.s_addr); // 注意得到的字节序 // 反转换 inet_ntop(AF_INET, (void *)&s, IPdotdec, 16); printf("inet_ntop: %s\n", IPdotdec); }
一次读取n个字节的readn函数
#include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <unistd.h> #include <fcntl.h> ssize_t readn(int fd,void *vptr, size_t n) { size_t nleft; ssize_t nread; char *ptr; ptr = vptr; nleft = n; while(nleft > 0) { if( (nread=read(fd,ptr,nleft)) < 0) { if(nread > 0) { nread = 0; } else { return -1; } } else if(nread == 0) { break; } nleft -= nread; ptr += nread; } return (n-nleft); } int main(int argc, char **argv) { int r_fd=open("/data0/test/test.log",O_RDONLY); char buf[100]; readn(r_fd,buf,20); printf("%s\n",buf); return 0; }
一次写入n个字节的writen函数
#include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <unistd.h> #include <fcntl.h> ssize_t writen(int fd, const void *vptr, size_t n) { size_t nleft; ssize_t nwritten; const char *ptr; ptr = vptr; nleft = n; while(nleft > 0) { if( (nwritten = write(fd,ptr,nleft)) <= 0) { if(nwritten <0) { nwritten = 0; } else { return -1; } } nleft -= nwritten; ptr += nwritten; } return n; } int main(int argc, char **argv) { int w_fd = open("/data0/test/write.log",O_WRONLY|O_CREAT,0755); writen(w_fd,"test he he",10); return 0; }
每次读取一行的readline函数
#include <stdio.h> #include <stdlib.h> #include <netinet/in.h> #include <unistd.h> #include <fcntl.h> ssize_t readline(int fd, void *vptr, size_t maxlen) { ssize_t n,rc; char c, *ptr; ptr = vptr; for(n=1;n<maxlen;n++) { if( (rc=read(fd,&c,1)) ==1) { *ptr++ = c; if(c=='\n') { break; } } else if(rc == 0) { *ptr = 0; return (n-1); } else { if(rc < 0) { continue; } return -1; } } *ptr = 0; return n; } int main(int argc, char **argv) { int r_fd=open("/data0/test/test.log",O_RDONLY); char buf[100]; readline(r_fd,buf,20); printf("%s\n",buf); return 0; }
参考
相关推荐
《UNIX网络编程 卷1:套接字联网API源代码》是网络编程领域的一本经典著作,主要关注于UNIX系统中的网络通信,特别是基于套接字的编程接口。这本书深入探讨了如何使用套接字API来实现跨网络的通信,为开发者提供了...
这本书详细介绍了Unix系统中的网络编程,尤其是套接字(Sockets)API的使用,是IT专业人员深入理解和实践网络通信技术的重要参考资料。 本书的核心内容主要围绕以下几个方面展开: 1. **套接字概念**:套接字是...
全书不但介绍了基本编程内容,还涵盖了与套接字编程相关的高级主题,对于客户/服务器程序的各种设计方法也作了完整的探讨,最后还深入分析了流这种设备驱动机制。 结合源代码(C语言)学习效果更好。 《UNIX网络...
2. **TCP/IP协议栈**:讲解了TCP和UDP这两种主要的传输层协议,以及它们在套接字编程中的应用。源码中会包含TCP连接的建立与关闭、数据传输,以及UDP的无连接通信。 3. **多路复用I/O**:如select()、poll()和epoll...
UNIX网络编程卷1:套接字联网API(第3版).pdf
UNIX网络编程卷1:套接字联网API(第3版).pdf
UNIX网络编程_卷1_套接字联网API
UNIX网络编程 卷1:套接字联网API(第3版)azw3自购破解
这本书详细介绍了如何在UNIX系统中使用套接字API进行网络通信,是学习和理解网络编程的基础。 本书主要涵盖了以下几个核心知识点: 1. **套接字基础**:套接字是网络通信中的基本概念,是进程间通信的一种方式。书...
卷一:《Unix网络编程卷一:套接字联网API》 这本书主要围绕Unix系统的套接字接口进行讲解,套接字(Sockets)是Unix系统中实现进程间通信(IPC)的一种重要机制,也是网络通信的基础。书中详细阐述了以下核心知识点...
2. **套接字API**:详细阐述了套接字编程接口,包括socket()函数创建套接字,bind()函数绑定本地地址,listen()函数准备接收连接,accept()函数接受连接请求,connect()函数发起连接,send()和recv()函数进行数据...
高性能网络编程的好书,第一部分,下载第二部分后才能阅读
笔记_UNIX环境网络编程卷一套接字联网API_中文第三版(第一轮)
书中还介绍了如何选择合适的套接字类型和协议族以满足不同类型的网络通信需求。 4. **网络字节序**:由于网络上的数据交换需要考虑字节序的问题,书中详细讨论了大端字节序和小端字节序,以及网络字节序(big-...
1. **基础套接字编程**:书中可能涵盖了TCP和UDP两种传输层协议的使用,展示了如何创建服务器和客户端,建立连接,发送和接收数据,以及关闭套接字。 2. **多线程编程**:在处理并发连接时,多线程技术常被用到。源...
《UNIX网络编程 卷1:套接字联网API(第3版)》是网络编程领域的一本经典著作,尤其在UNIX/Linux系统上有着广泛的影响力。这本书深入浅出地讲解了如何使用套接字API进行网络通信,对于学习C++编程语言的开发者来说,...
《UNIX网络编程卷1:套接字联网API(第3版)》是网络编程领域的一本经典著作,由W. Richard Stevens和Stephen A. Rago共同撰写。这本书深入讲解了如何使用UNIX系统上的套接字接口进行网络通信,涵盖了TCP/IP协议栈的...