Linux
WJSZMD
暂无
展开
-
POLLHUP vs POLLNVAL vs EPOLLHUP
POLLNVALPOLLNVALis equivalent to EBADF: it means the file descriptor does not actually refer to any open file, i.e. it was closed or never open to begin with. This can never happen except as a result of a programming error or intentional attempt to query原创 2020-05-26 10:08:56 · 981 阅读 · 0 评论 -
pthread_join(),pthread_exit(),pthread_detach()
简介pthread有两种状态joinable状态(属性)和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符。只有当你调用了pthread_join之后这些资源才会被释放。若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_exit时自动会被释放。unjoinable属性可以在pthread_create时指定,或在线程创建后在线程中pthread_detach自己, 如:pthr原创 2020-05-22 14:21:26 · 838 阅读 · 0 评论 -
使用GDB进行多线程调试的基本常用命令
1. 线程的查看首先创建两个线程:#include <stdio.h>#include <unistd.h>#include <pthread.h>#include <stdlib.h>#include <string.h>void* pthread_run1(void* arg){ (void)arg; ...原创 2019-12-30 12:13:39 · 242 阅读 · 0 评论 -
java中的接口与C++的多继承
JAVA接口含义https://www.runoob.com/java/java-interfaces.htmlJava中接口的作用问题: 例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂不是更便捷,还省去了定义接口?解答:接口就是个招牌。比如说你今年放假出去杭州旅游,玩了一上午,你也有点饿了,突然看到前面有个店子,上面挂着KFC...原创 2019-08-12 17:59:23 · 477 阅读 · 0 评论 -
宏定义函数-普通函数-内联函数区别
宏定义函数VS普通函数VS内联函数宏定义函数VS普通函数宏定义函数要点:变量都用括号括起来,防止出错,结尾不需要;。在实际编程中,不推荐把复杂的函数使用宏,不容易调试。多行用\例子:单行:#define MAX(a, b) ((a) > (b) ? (a):(b))多行:#define MALLOC(n, type) \((type *) malloc((n)*...原创 2019-07-04 13:59:32 · 617 阅读 · 0 评论 -
CString,string,char*转换
CString,string,char*转换首先假设这里CString是CStringA,之后再讨论CStringW的转换.string=> CStringstring str;CString cstr;cstr.format("%s",str.c_str());CString=> stringCString cstr;string str(cstr.GetB...原创 2019-06-19 13:41:19 · 278 阅读 · 0 评论 -
vscode配置c++环境 如何在windows上开发linux程序
VSCode(c/c++插件)配置C++环境请看官方文档足够解决大部分问题.如果您只想要一个轻量级工具来编辑C ++文件,Visual Studio Code是一个很好的选择。但是,如果您希望获得现有Visual C ++项目的最佳体验或在Windows上进行调试,建议使用Visual Studio IDE.C/C++扩展不包括C ++编译器或调试器。这里有几个编译器的选择:C...原创 2019-05-29 23:16:51 · 4020 阅读 · 0 评论 -
同步-异步-阻塞-非阻塞全面解析
阻塞/非阻塞/同步/异步首先结论如下:对于unix来说:阻塞式I/O(默认)非阻塞I/O(nonblock)I/O复用(select/poll/epoll)都是同步I/O,因为它们在数据由内核空间复制回进程缓冲区时都是阻塞的(不能干别的事)。AIO异步I/O模型它是异步I/O,因为异步I/O是这个含义:数据准备完成由内核空间拷贝回缓冲区后 并通知进程在进程收到通知...原创 2019-06-05 17:28:23 · 178 阅读 · 0 评论 -
extern,extern C,头文件中可否定义变量,static,const等汇总
extern , extern “C” 作用, 该不该在头文件中定义全局变量? 以及C中的const static,C++中的static 和 const区别联系.extern首先说明extern,一般来说extern的作用是告诉编译器,我要引用别的模块定义的变量或者函数啦. 即extern xxx;只用来声明,而不定义.一般用法如下:对于extern 变量:A.c#include &...原创 2019-05-14 22:15:50 · 801 阅读 · 0 评论 -
strcpy的不安全之处
不安全的strcpystrcpy将src指向的以null结尾的字节字符串(包括null终止符)复制到dest指向其第一个元素的字符数组。如果dest数组不够大,则行为未定义。 如果字符串重叠,则行为未定义。 如果dest不是指向字符数组的指针,或者src不是指向以null结尾的字节字符串的指针,则行为是未定义的。strcpy,strncpy等函数都不安全.原因在于他们都不检查边界,极易造成...原创 2019-05-09 17:47:58 · 7072 阅读 · 3 评论 -
SIGINT,SIGKILL,SIGTERM信号区别,各类信号总结
SIGINT,SIGKILL,SIGTERM三者都是结束/终止进程运行.但略微有区别.SIGINT产生方式: 键盘Ctrl+C产生结果: 只对当前前台进程,和他的所在的进程组的每个进程都发送SIGINT信号,之后这些进程会执行信号处理程序再终止.SIGTERM产生方式: 和任何控制字符无关,用kill函数发送本质: 相当于shell> kill不加-9时 pid.产生结...原创 2019-04-16 13:43:24 · 29453 阅读 · 0 评论