随笔分类 - C/C++
C语言相关
摘要:这几天写C程序,问题不断,先记下来吧double free or corruption字面意思理解为重复释放空间或崩溃,通常由于你调用了两次free,虽然你可能不是两次给free()传同一个指针,但可能因为第一个free的指针代表的空间越界了将第二个指针指向的区域也free了。*** stack s...
阅读全文
摘要:守护进程,脱离于终端,可避免被任何的终端信号所打断,常用于服务器程序。我们用ssh远程登录,可能做的事情就是启动某个程序,如果不是守护进程,在我们退出终端时,进程立刻被杀死了,因为由终端启动的进程是tty的子进程。可用cron或nohup来启动。另外的启动方式有1.在系统启动时由启动脚本启动,通常放...
阅读全文
摘要:今天由于项目需求(其实是某门课的一个大作业,不好意思说出口啊。。。),想要使用多线程。相信大家一般用的是linux上的POSIX C或windows上的线程库,然而这些线程库以来于特定系统,并不“标准”。2011年发布的C++11标准中提供了并发执行的相关操作: C++11 新标准中引入了四个头文件
阅读全文
摘要:c++中使用namespace来防止命名冲突(重命名),我们经常使用的一些函数和变量都被放在一个叫std的namespace中,如标准I/O流操作,vector等等。我们在每一个文件中都可使用std中的东西,原因在于std是全局的。而我们在使用自己写的namespace时,要先包含我们写的包含它的定
阅读全文
摘要:前日写了个二叉树插入节点的操作,是一个递归函数。在遍历树时发现并没有插入到树中。这可就纳了闷,单步跟踪发现了令我感到奇怪事情,为什么插入函数的参数是指针,而且被改变了,但函数外部为改变呢。请教高人之后豁然开朗。。。对于c语言的指针,初学者有诸多困惑,虽不至于令人害怕,但使用不当,会使程序出错或埋下隐...
阅读全文
摘要:JavaNativeInterface提供了java与c语言写的代码之间互相调用的方式。在c语言方面jni.h中声明了许多的类型和方法,有很多java的数据类型和c语言类型的转换方法函数。java里的int,String,byte[]等对应于C方面的jint,jstring,jbyteArray.i...
阅读全文
摘要:先上一段代码:#include#include#includeusing namespace std;void error(char* format,...){//至少要有一个参数,后边的...表示参数可变 va_list ap; int d,flag; char c, *s; ...
阅读全文
摘要:写c的小程序断不了需要输入输出,手动输入可太麻烦了。下面介绍IO的重定向方式:1.重定向标准输入输出和错误,直接在命令行使用符号 2> >> 2>>等,还可使用2>&1将标准错误重定向到标准输出(两个大于号表示追加)如下面执行main程序:main answer.csv 2> error.log2....
阅读全文
摘要:写爬虫也许你用的是python,类似urlopen(url).read()即可获得普通的网页的源码,或者用的java的网络库加上流操作,或者其他高级语言。但你有没有想过使用C语言来实现呢?我曾经以为用c来实现获取网页源码是很复杂的,要自己按照http等协议来构造包,再解析接受到的包,还要考虑三次握手
阅读全文
摘要:我们有时候需要在程序中做一些对于用户或内核发出的信号后的处理,如写回文件等善后处理的事情,或者直接忽略信号(当你按Ctrl+C时我压根不理你)。下面是一段信号处理的代码(POSIX C): 下面可以在主函数中使用: 注意有两个信号不能被捕捉和忽略:SIGKILL(可以用kill -KILL 接PID
阅读全文
摘要:下面是C语言的获取本地时间和构造时间进行格式化时间显示输出的相关函数:This page is part of release 3.35 of the Linux man-pages project.#include char *asctime(const struct tm *...
阅读全文