• 2024-07-01一、errno perror strerror的使用
    在Linux中,errno是一个非常重要的全局变量,用于存储系统调用的错误代码。以下是关于errno的详细解释:定义和用途:1.errno是一个预定义的外部整型(int)变量,通常包含在<errno.h>头文件中。2.当系统调用或库函数发生错误时,它们通常会设置errno以指示发生了哪种错误。3.errno的值仅在函
  • 2024-06-12模拟epoll的饥饿场景
    说明一直听说epoll的饥饿场景,但是从未在实际环境中面对过,那么能不能模拟出来呢?实际的情况是怎样呢?模拟步骤基于epoll写一个简单的tcpechoserver,将每次read返回的字节数打印出来模拟一个客户端大量写入测试其他客户端能否正常返回Server代码#include<stdio.h>#include
  • 2024-06-03C++代码实现一个简易http服务端,返回给客户端一张图片
    注意事项sprintf读取字符串时,遇到\0会结束,所以不能用sprintf来读取*pictureBuffervoid*memcpy(void*str1,constvoid*str2,size_tn),str2会覆盖str1里的内容代码#include<func.h>charpictureBuffer[150*1024];charbuffer[200*1024];intmain(){in
  • 2024-03-26Unix系统上使用semop函数写一个信号量函数,确保只有一个进程能访问临界资源
    semop是Unix系统调用,用于操作信号量集。信号量是一种用于保护共享资源或临界区域免受并发访问的同步原语。以下是一个使用semop的简单示例,确保只有一个进程能访问临界资源:#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<fcntl.h>#include<
  • 2023-12-07实验四 Web服务器2
    server.c#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#definePORT8080#defineBUFFER_SIZE1024intmain(){   int
  • 2023-10-18C语言 mmap完成文件读写
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<sys/mman.h>#include<fcntl.h>#include<unistd.h>intmain(){//打开文件进行读写intfd=open("test.log",O_RDWR|O_CREAT,0600);
  • 2023-08-20「C」错误处理
    错误处理说实话这一章节看的云里雾里,而且目前也没有能用到它的场景.先记下来,以后用的时候方便查看.编写无错程序的方法有两种,但只有第三种写程序的方法才行得通.<assert.h>:诊断voidassert(scalarexpress);assert是一个按照函数的使用方法设计的宏.需要传入一
  • 2023-07-30C++ error学习
    转自:https://blog.csdn.net/NiuYoohoo/article/details/849304041、介绍errno是用于错误指示的预处理器宏,数个标准库函数通过写入正整数到errno指示错误。程序启动时errno的值为​0​,而且尽管不管在错误发生与否时,允许写入正整数到errno。2、例子#include<iostrea
  • 2023-06-28bind:success 但是无法执行下面的操作
    perror:success但是无法执行后续操作intsockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd<0) { perror("socketerr"); return-1; } structsockaddr_insaddr; saddr.sin_family=AF_INET; saddr.sin_port=htons(atoi(argv[2])); saddr.sin_addr.s_
  • 2023-05-08学Linux学到的C函数
    strncmp()库文件:string.hstrncmp函数为字符串比较函数,字符串大小的比较是以ASCII码表上的顺序来决定,此顺序亦为字符的值。其函数声明为intstrncmp(constchar*str1,constchar*str2,size_tn);功能是把str1和str2进行比较,最多比较前 n 个字节,若str1与str2的
  • 2023-03-14tcp网络编程实例1
    tcp_server.c#include<signal.h>#include<stdio.h>#include<errno.h>#include<unistd.h>#include<stdlib.h>#include<time.h>#include<string.h>#include
  • 2023-02-28strerror(介绍与使用)
    strerror:把错误码,翻译成错误信息