对C++手册内容简介

开发 后端
C++作为一种语言,大多数的人都是把它默认为面向对象的支持,认为他就是C语言的替代品,一种延伸而已,而事际上,C++与C是完全不同的语言,下面学一下C++手册相关内容。

学无止境,最近学习了C++手册的一些知识,写了二段代码.希望有人来点评,指出其中的错误,或需要改进的地点.在写的过程当中,遇到很多问题,不段的问人,在贴求助。

查看C++手册,查看网上教程才得以写出. 但C++的许多基础知识我还是不懂.并不段的在学习.  由于工作繁忙,学习进度实在是小得可怜,发了很多C++语言的基础.在那里我学到了许多知识. 如果打算学习C++手册的成员们就一起吧。

  1. #include <stdlib.h>    
  2. #include <stdio.h>    
  3. #include <errno.h>    
  4. #include <string.h>    
  5. #include <netdb.h>    
  6. #include <sys/types.h>    
  7. #include <netinet/in.h>    
  8. #include <sys/socket.h>    
  9. #include <syslog.h>    
  10. #include <unistd.h>     
  11. #include <netinet/in.h>      
  12. #include <sys/socket.h>        
  13. #include <arpa/inet.h>        
  14. #include <errno.h>    
  15. #include <sys/ipc.h>        
  16. #include <sys/shm.h>    
  17. /*建立精灵进程*/    
  18. int daemon_init(void)    
  19. { pid_t pid;    
  20. if((pid = fork()) < 0) return(-1);    
  21. else if(pid != 0) exit(0); /* parent exit */    
  22. /* child continues */    
  23. setsid(); /* become session leader */    
  24. chdir("//tmp"); /* change working directory */    
  25. umask(0); /* clear file mode creation mask */    
  26. close(0); /* close stdin */    
  27. close(1); /* close stdout */    
  28. close(2); /* close stderr */    
  29. return(0); }    
  30. /*读取文件数据*/    
  31. void myread(char *buff)    
  32. {    
  33. char buf[1024];    
  34. FILE *fp;    
  35. fp = fopen("/proc/net/dev", "r");    
  36. if(!fp)    
  37.  {    
  38. perror("fopen");    
  39. exit(2);    
  40. }    
  41. fgets(buf, 1024, fp);    
  42. fgets(buf, 1024, fp);    
  43. fgets(buf, 1024, fp);    
  44. fgets(buf, 1024, fp);    
  45. fscanf(fp, "%s", buf);   /*从第三行开始读*/    
  46. snprintf(buff, 100, "%s", buf);    
  47. fclose(fp);    
  48. printf("%s\n", buf);    
  49. }    
  50.     
  51. int main(int argc, char *argv[])    
  52. {    
  53. int sockfd,new_fd;     
  54. struct sockaddr_in server_addr;    
  55. struct sockaddr_in client_addr;    
  56. int sin_size,portnumber;    
  57. char hello[1024];    
  58. /* 服务器端开始建立socket描述符 */    
  59. if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)    
  60. {    
  61. printf("Socket error:%s\n\a",strerror(errno));    
  62. exit(1);    
  63. }    
  64. /* 服务器端填充 sockaddr_in结构 */    
  65. bzero(&server_addr,sizeof(struct sockaddr_in));    
  66. server_addr.sin_family=AF_INET;    
  67. server_addr.sin_addr.s_addr=inet_addr("本机IP");        
  68. server_addr.sin_port=htons(10240); /*端口号转换为网络字节序*/    
  69. /* 捆绑sockfd描述符 */    
  70. if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==    
  71. -1)    
  72. {    
  73. printf("Bind error:%s\n\a",strerror(errno));    
  74. exit(1);    
  75. }    
  76. /* 监听sockfd描述符 */    
  77. if(listen(sockfd,5)==-1) /*5为请求队列的***请求数*/    
  78. {    
  79. printf("Listen error:%s\n\a",strerror(errno));    
  80. exit(1);    
  81. }    
  82. while(1)    
  83. {    
  84. /* 服务器阻塞,直到客户程序建立连接 */    
  85. sin_size=sizeof(struct sockaddr_in);    
  86. if((new_fd=accept(sockfd,(struct sockaddr *)(&client_addr),&sin_size    
  87. ))==-1)    
  88. {    
  89. printf("Accept error:%s\n\a",strerror(errno));    
  90. exit(1);    
  91. }    
  92. /*inet_ntoa的作用是将一个32位Ipv4地址转换为相应的点分十进制数串*/    
  93. printf("Server get connection from %s\n",inet_ntoa(client_addr.sin_addr));    
  94. /*向客户端发送hello字符数组的内容*/    
  95. myread(hello);    
  96. if(write(new_fd,hello,strlen(hello))==-1)    
  97. {    
  98. printf("Write Error:%s\n",strerror(errno));    
  99. exit(1);    
  100. }    
  101. /* 这个通讯已经结束 */    
  102. close(new_fd);    
  103. }/* while结尾处*/    
  104. close(sockfd);    
  105. exit(0);    
  106. }   

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制
责任编辑:chenqingxiang 来源: 新浪科技
相关推荐

2013-04-09 15:49:04

iOSSQLite基础内容简

2010-07-13 09:02:16

Perl

2010-04-26 09:51:54

Oracle OCP

2010-03-03 15:26:54

Python编码规范

2010-01-18 16:27:26

C++语言

2010-01-14 17:18:17

C++语言

2010-04-07 10:51:19

Oracle客户

2010-03-15 13:35:25

Python GUI

2010-01-13 17:04:36

C++语言

2010-01-18 15:40:37

Visual C++工

2018-09-25 23:15:12

Office 应用微软

2010-01-28 15:09:36

C++资源管理

2010-01-15 15:52:18

CC++

2010-01-15 10:41:06

CC++

2010-01-13 18:34:43

C++ 托管

2010-01-18 10:53:26

2010-02-05 15:04:41

C++定义变量

2010-02-06 11:13:11

C++ makefil

2010-02-06 14:12:54

C++继承方式

2010-01-25 18:19:17

C++特性
点赞
收藏

51CTO技术栈公众号