首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏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

    55811编辑于 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

    41810编辑于 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的不同就在于,它打印完参数部分的字符串后,在打印一个:和一个 (空格),接着打印错误信息

    98410编辑于 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。

    95710编辑于 2024-02-29
  • 来自专栏转载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

    95150发布于 2018-03-09
  • 来自专栏刘晓杰

    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返回前客户/服务器的状态

    72440发布于 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.4K31发布于 2021-01-18
  • 来自专栏嵌入式技术笔记

    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

    4.1K11发布于 2019-02-21
  • 来自专栏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

    77310编辑于 2024-12-11
  • 来自专栏全栈程序员必看

    由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(

    53220编辑于 2022-09-07
  • 来自专栏全栈程序员必看

    send()、sendto()和recv()、recvfrom()的使用

    sockaddr_in); char buf[BUFSZ] = {}; //创建套接字 if ((srv_sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror ret = recvfrom(srv_sd, buf, BUFSZ, 0, (struct sockaddr* )&cli_addr, &addrlen); if (ret < 0) { perror close(srv_sd); //创建与客户端数据交互的套接字 cli_sd = socket(AF_INET, SOCK_DGRAM, 0); if (cli_sd < 0) { perror sockaddr_in); char buf[BUFSZ] = {}; //创建套接字 if ((sd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror cli_addr.sin_addr.s_addr = 0; if ((ret = bind(sd, (struct sockaddr* )&cli_addr, addrlen)) < 0) { perror

    2.3K20编辑于 2022-09-15
  • 来自专栏游戏开发司机

    UNIX(进程间通信):08 管道通信

    include <fcntl.h> int main(){ int fds[2]; int len; char buf[100]={}; if(pipe(fds)==-1) //创建管道 perror ("read"),exit(1); if(write(1,buf,len)==-1) //把从管道里读出的内容写到标准输出 perror("write"),exit(1); } \n"; int fds[2]; if(pipe(fds)==-1) perror("pipe"),exit(1); pid_t pid = fork(); //创建匿名管道 if(pid==0) { close(fds[0]); //关闭管道读描述符 if(write(fds[1],buf,1024)==-1) //写进管道 perror( ("read"),exit(1); if(write(1,buf,1024)==-1) perror("write"),exit(1); close(fds[0]);

    1.5K20发布于 2021-03-04
  • 来自专栏全栈程序员必看

    c语言socket编程代码例子

    socket()函数 int sockfd=0; sockfd = socket(AF_INET,SOCK_STREAM,0); if(sockfd ==-1 ){ printf("创建失败:%d"); perror \n"); } else { perror("connect"); } //3.与服务端通信,发送报文 int iret; char buffer[1024]; memset( ,strlen(buffer1)); //清空buffer if((iret=recv(sockfd,buffer1,sizeof(buffer1),0))<=0) //接收服务的发送的报文 { perror =0){ perror("linsten"); close(sockfd); } else { printf("正在监听... { printf("clientfd%d:连接成功\n",clientfd); } else {perror("accept");} //5.与客户的通信,接收报文 char buffer[1024];

    2.8K30编辑于 2022-11-18
  • 来自专栏Windows开发

    一个线程搞定TCP服务器

    = NO_ERROR) { perror("WSAStartup() failed"); exit(-1); } /************** ************/ listen_sd = socket(AF_INET, SOCK_STREAM, 0); if (listen_sd < 0) { perror *********************/ rc = ioctlsocket(listen_sd, FIONBIO, &on); if (rc < 0) { perror rc = bind(listen_sd, (struct sockaddr *)&addr, sizeof(addr)); if (rc < 0) { perror = WSAEWOULDBLOCK) { perror(" accept() failed");

    1.2K20发布于 2019-08-29
  • 来自专栏机器和智能

    端口复用(bind error: Address already in use 问题)

    ]) { // 创建监听的套接字 int lfd = socket(AF_INET, SOCK_STREAM, 0); if(lfd == -1) { perror int ret = bind(lfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); if(ret == -1) { perror error"); exit(1); } // 监听 ret = listen(lfd, 64); if(ret == -1) { perror int cfd = accept(lfd, (struct sockaddr*)&clien_addr, &clien_len); if(cfd == -1) { perror buf)); int len = recv(cfd, buf, sizeof(buf), 0); if(len == -1) { perror

    1.5K10编辑于 2024-09-17
  • 来自专栏ephemerals__的技术专栏

    【c语言】动态内存管理

    > int main() { int* ptr = (int*)malloc(sizeof(int)); if (ptr == NULL)//判断内存开辟是否成功,是空指针则开辟失败 { perror #include <stdlib.h> int main() { int* ptr = (int*)calloc(3, sizeof(int)); if (ptr == NULL) { perror stdio.h> #include <stdlib.h> int main() { int* p = (int*)malloc(10 * sizeof(int)); if (p == NULL) { perror stdio.h> #include <stdlib.h> int main() { int* p = (int*)malloc(10 * sizeof(int)); if (p == NULL) { perror stdio.h> #include <stdlib.h> int main() { int* p = (int*)malloc(5 * sizeof(int)); if (p == NULL) { perror

    40610编辑于 2024-10-24
  • 来自专栏linux驱动个人学习

    Linux应用编程之多次打开同一个文件

    /test_file", O_RDWR); if (-1 == fd1) { perror("open error"); exit(-1); } /test_file", O_RDWR); if (-1 == fd2) { perror("open error"); ret = -1; /test_file", O_RDWR); if (-1 == fd3) { perror("open error"); ret = -1; /test_file", O_RDWR); if (-1 == fd2) { perror("open error"); ret = -1; /test_file", O_RDWR); if (-1 == fd2) { perror("open error"); ret = -1;

    1.1K30编辑于 2022-09-21
  • 来自专栏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
领券