首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏bit哲学院

    c++编程之perror()

    参考链接: C++ perror() 定义函数          void perror(const char *s); perror ("open_port");   函数说明           perror perror函数只是将你输入的一些信息和现在的errno所对应的错误一起输出。  和异常处理的区别           这里有一个疑问,c++已经有了异常处理,为什么还需要一个perror呢? 那么我们发现函数没有成功运行,就需要perror函数调取函数没有成功运行的原因。  stdio.h> int main() {     FILE* fp;     fp = fopen("/xxx/xxx", "r+");     if (NULL == fp) {         perror ("Error: ");     }     return 0; } 在这段程序中,打开文件的函数没有正确执行,我们想知道为什么没有执行,是其他进程占用还是不存在,于是就调用perror函数产看。

    1.1K00发布于 2021-02-13
  • 运维实践|MySQL命令之perror

    官网介绍如下: Perror显示MySQL或操作系统误差代码的错误消息 官网地址:https://dev.mysql.com/doc/refman/8.0/en/perror.html perror 位置 如何找到perror小工具的位置,一般情况下,我们会使用whereis perror或者which perror来定位。 例如我这里: $ whereis perror perror: /usr/local/bin/perror $ $ cd /usr/local/bin/ $ ll perror lrwxr-xr-x [options] errorcode… perror [选项] [错误码] 对于使用格式,perror试图灵活理解其参数,例如,对于ER_WRONG_VALUE_FOR_VAR错误,perror 注意⚠️:使用perror是在单机上使用,如果是在集群中,请使用命令ndb_perror

    49511编辑于 2024-02-28
  • 来自专栏开发运维工程师

    运维实践|MySQL命令之perror原创

    这些error有些是由于操作系统引起的,比如文件或者目录不存在等等,使用perror的作用就是解释这些错误代码的详细含义。从官网我们其实也可以查询到一些蛛丝马迹来帮助我们快速了解perror命令。 perror小工具的位置,一般情况下,我们会使用whereis perror或者which perror来定位。 wheel 33 12 17 2022 perror@ -> .. [options] errorcode...perror [选项] [错误码]对于使用格式,perror试图灵活理解其参数,例如,对于ER_WRONG_VALUE_FOR_VAR错误,perror理解这些参数中的任何一个 mysql> show variables like '%dir%';复制注意⚠️:使用perror是在单机上使用,如果是在集群中,请使用命令ndb_perror

    35810编辑于 2024-02-26
  • 来自专栏编程学习

    C语言——字符函数和字符串函数(三)【strtok,strerror,perror

    三,perror的使用 perror函数也是一个用来打印错误码的函数 通过接受一个字符串作为参数,并把它作为错误消息输出到标准错误流 同样是上面的代码,我们修改一下,用perror #include main() { FILE *file = fopen("nonexistent_file.txt", "r"); if (file == NULL) { perror fclose(file); return 0; // 返回0表示成功 } 输出结果是完全一样的,perror的不同就在于,它打印完参数部分的字符串后,在打印一个:和一个 (空格),接着打印错误信息

    90510编辑于 2024-03-19
  • 来自专栏学习C/++

    【C语言】超详解strncpy&&strncat&&strncmp&&strerror&&perror的使⽤和模拟实现

    本小节,阿森继续和你一起学习5个字符串函数:strncpy,strcnat,strncmp的使用和两种模拟实现方法,他们和strcpy等函数比较多了一个n ,实现方法有很大区别,还有strerror和perror perror perror函数用于打印错误信息。它的功能与strerror函数类似,但打印方式不同。 perror函数原型: void perror(const char *s); s: 可选的错误前缀信息。 简意: perror函数直接打印到标准错误输出,打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。 使用perror函数需要包含错误头文件errno.h。

    89010编辑于 2024-02-29
  • 来自专栏嵌入式技术笔记

    Linux进程间通信之《共享内存》入门

    ", 'a')) == -1) { perror("ftok"); exit(-1); } signal(SIGUSR1, handler); { if ((shmadd = (SHMBUF *)shmat(shmid, NULL, 0)) == (SHMBUF *)-1) { perror { sleep(1); if (shmdt(shmadd) == -1) { perror ); } if (shmctl(shmid, IPC_RMID, NULL) == -1) { perror ", 'a')) == -1) { perror("ftok"); exit(-1); } signal(SIGUSR1, handler);

    2.3K20发布于 2021-05-31
  • 来自专栏程序手艺人

    Linux下音频设备的操作

    app music\n"); exit(1); } int fd = open("/dev/dsp",O_RDWR); if(fd < 0){ perror exit(1); } int io_1 = ioctl(fd,SOUND_PCM_WRITE_BITS,&bit); if(io_1 < 0){ perror ); exit(1); } /*打开音乐文件*/ int fp = open(argv[1],O_RDWR); if(fp < 0){ perror \n"); exit(1); } int wr = write(fd,buf,len); if(wr < 0){ perror("write error \n"); exit(1); } int len = lseek(fp,0,SEEK_END); if(len < 0){ perror("lseek

    4K11发布于 2019-02-21
  • 来自专栏frytea

    Linux 多进程通信开发之 UNIX domain Socket 通信机制从 TCP 切换为 UDP

    char** argv) { int socket_fd = socket(AF_UNIX,SOCK_STREAM,0); if (socket_fd < 0) { perror remove(addr.sun_path); } if (bind(socket_fd,(sockaddr*)&addr,sizeof(addr)) < 0) { perror ; newcon = accept(socket_fd,(sockaddr*)&clientaddr,&addrlen); if (newcon < 0) { perror 1); } /* --------DIFF, ipc tcp only------------ */ if (close(newcon) < 0) { perror = -1; newcon = connect(socket_fd,(sockaddr*)&serveraddr,addrlen); if (newcon < 0){ perror

    2.3K31发布于 2021-01-18
  • 来自专栏转载gongluck的CSDN博客

    UNPv13:#第5章#TCP客户/服务器程序示例

    int listenfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(listenfd == -1) { perror ])); if(bind(listenfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) == -1) { perror "function bind error : "); exit(-1); } if(listen(listenfd, 5) == -1) { perror } else { if(close(connfd) == -1) { perror ]) { int sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(sockfd == -1) { perror

    90950发布于 2018-03-09
  • 来自专栏全栈程序员必看

    由select/epoll返回的非阻塞connect还会是EINPROGRESS状态吗?「建议收藏」

    status = 1; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &status, sizeof(int))) { perror = EINPROGRESS) { perror("connect error!") = EPOLLOUT; ev.data.fd = fd; if (epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &ev) == -1 ) { perror = 0) { perror("connect error!") ; if (epoll_ctl(epfd, EPOLL_CTL_DEL, fd, NULL) == -1 ) { perror(

    49520编辑于 2022-09-07
  • 来自专栏刘晓杰

    UNPv1第五章:TCP客户服务器程序实例

    0); } if(connect(sockfd, (struct sockaddr *)&srvaddr, sizeof(srvaddr)) < 0 ) { perror = strlen(sendline) ) { perror("send data error"); } if( read(sockfd ("bind error."); } if(listen(listenfd, 1023) < 0) { perror("listen error."); accept(listenfd, (struct sockaddr*)&cliaddr, &clilen); if(connfd < 0) { perror = strlen(line)) { perror("write error"); } } } accept返回前客户/服务器的状态

    67440发布于 2019-02-21
  • 来自专栏xcywt

    Linux进程间通信之共享内存

    } // 映射共享内存,得到虚拟地址 void *p = shmat(shmid, 0, 0); if((void*)-1 == p) { perror *pp = 0x12345678; *(pp + 1) = 0xffffffff; // 解除映射 if(-1 == shmdt(p)) { perror /", 66); // 获取共享内存,返回一个id int shmid = shmget(key, 0, 0); if(-1 == shmid) { perror } // 映射共享内存,得到虚拟地址 void *p = shmat(shmid, 0, 0); if((void*)-1 == p) { perror 1); printf("从共享内存中都取了:0x%x 和 0x%x \n", x, y); // 解除映射 if(-1 == shmdt(p)) { perror

    5.1K50发布于 2018-01-11
  • 来自专栏米扑专栏

    一个简单的Linux下Client/Server应答例子

     }  he = gethostbyname(argv[1]);  //建立一个TCP套接口  if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1) {  perror ("connect");  exit(1);  }  //向服务器发送字符串msg  if(send(sockfd,msg,strlen(msg),0)==-1) {  perror("send");  exit(1);  }  //接受从服务器返回的信息  if((numbytes = recv(sockfd,buf,100,0))==-1) {  perror("recv");  exit(1); ;  char buff[100];  int numbytes;  //建立TCP套接口  if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1) {   perror ("bind");   exit(1);  }  //创建监听套接口  if(listen(sockfd,10)==-1) {   perror("listen");   exit(1);  }  printf

    1.4K20发布于 2019-02-19
  • 来自专栏cpp加油站

    linux网络编程系列(三)--tcp和udp的基本函数调用过程及如何选择

    常用实例: int sfd = socket(AF_INET, SOCK_STREAM, 0); if(sfd == -1) { perror("socket"); exit if(bind(sfd, (struct sockaddr*)&my_str, sizeof(struct socketaddr)) == -1) {perror("bind");close(sfd 最大值可设至128 返回值:成功则返回0,失败返回-1 常用实例: if(listen(sfd, 10) == -1) { perror("listen"); close( ; int new_fd = accept(sfd, (struct sockaddr*)&clientaddr, &addrlen); if(new_fd == -1) { perror perror("connect is closed"); return -1; } memset(buf, 0, sizeof(buf));

    1.3K20发布于 2021-04-16
  • 来自专栏呱牛笔记

    一个UDP可读缓冲区不够导致丢包的现象

    (&sz), (socklen_t) sizeof(sz)) < 0) { sz = sz / 2; } else { break; } } if (sz < 1) { perror (&sz), (socklen_t) sizeof(sz)) < 0) { sz = sz / 2; } else { break; } } if (sz < 1) { perror Set socket option */ if (setsockopt(sock_fd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(int)) < 0) { perror on = 1; #endif if(setsockopt(sock_fd, IPPROTO_IP, IP_RECVERR, (void *)&on, sizeof(on))<0) perror totallen) { perror("recvfrom() no pending data.");          break;         } memset(buf, 0, sizeof

    2.2K20编辑于 2023-05-02
  • 来自专栏C语言

    【C语言】文件操作函数详解

    int main() { FILE *file; file = fopen("example.txt", "w"); if (file == NULL) { perror int main() { FILE *file; file = fopen("example.txt", "w"); if (file == NULL) { perror = 0) { perror("无法关闭文件"); return 1; } return 0; } 表格说明: 函数 作用 示例 输出 fclose 关闭文件 ; file = fopen("example.txt", "w"); if (file == NULL) { perror("无法打开文件"); return = 1) { perror("读取文件失败"); fclose(file); return 1; } printf("读取的数字: %d

    69410编辑于 2024-12-11
  • 来自专栏Golang语言社区

    socket编程小问题:地址已经被使用——Address already in use

    ); // 建立服务器端socket if((server_sockfd = socket(AF_INET, SOCK_STREAM, 0))<0) { perror bind(server_sockfd,(struct sockaddr *)&server_address,sizeof(struct sockaddr)))<0) { perror (struct sockaddr *)&client_address,(socklen_t*)&sin_size); if(client_sockfd<0) { perror EXIT_FAILURE); } // 接收客户端数据 if(recv(client_sockfd,buf,BUFFER_SIZE,0)<0) { perror ,BUFFER_SIZE,0)<0) { perror("send failed"); exit(EXIT_FAILURE); }

    4.2K40发布于 2018-03-23
  • 来自专栏电子技术研习社

    Linux笔记(12)| 几种并发式IO的实现方法

    int ret; char buf[100]={0}; fd=open(pathname,O_RDWR | O_NONBLOCK); if(fd<0) { perror /读鼠标 // if(ret<0) // { // printf("read mouse ret=%d\n",ret); // perror sizeof(buf)); ret= read(0,buf,5); //读键盘 // if(ret<0) // { // perror fd, &myset); ret=select(fd+1,&myset,NULL,NULL,NULL); if(ret<0) { perror 100]; struct pollfd mypoll[2]={0}; fd=open(pathname,O_RDONLY); if(fd<0) { perror

    85720发布于 2020-07-31
  • 来自专栏全栈程序员必看

    c语言socket编程流程,C语言socket编程简单步骤「建议收藏」

    无 *返回值:套接字的ID */ int creat_socket() { int ret; ret=socket(AF_INET,SOCK_STREAM,0); if(ret==-1) { perror void listen_socket(int socketid) { int ret; ret=listen(socketid,ONLINE_MAX);//启动监听 if(ret==-1) { perror len=sizeof(client_addr); ret=accept(socketid,(struct sockaddr *)&client_addr,&len); if(ret==-1) { perror :无 *返回值:套接字ID */ int creat_socket() { int ret; ret=socket(AF_INET,SOCK_STREAM,0); if(ret==-1) { perror { int ret; ret=connect(socketid,(struct sockaddr *)&server_in,sizeof(server_in)); if(ret==-1) { perror

    6.2K30编辑于 2022-09-14
  • 来自专栏技术杂记

    进程间通讯(七).socket(1)

    代码示例 要求 编写一个网络通讯程序,客户端通过指定IP地址的方式向服务端发送一段字符串,服务端收到后显示并且作出响应,然后退出 代码示例 tcpserver.c #include <stdio.h> //perror = bind(sfd,(struct sockaddr *)&server_sai,sizeof(struct sockaddr))) //将 sfd 和 socket 地址进行绑定 { perror (sfd,MAX_CONN))) //在sfd上进行监听,最多允许同时有2个请求在队列中排队,此配置正是DDOS的攻击点,协议天然的缺陷在于,不论这个值设多设少,都不会是一个适合的值 { perror (cfd=accept(sfd,(struct sockaddr *)&client_sai,(socklen_t *)&addrlen))) //接受连接,将返回的描述符赋给cfd { perror message:%s\n",buf); //将收到的内容输出 if(-1 == (sendbytes = send(cfd,"OK",2,0))) //给客户端回复一个ok { perror

    88720发布于 2021-09-15
领券