摘要:
最近在学习Golang,想着可以就以前的知识做一些串通,加上了解到go语言也是面向对象编程语言之后。在最近的开发过程中,我碰到一个问题,要用go语言实现单例模式。本着“天下知识,同根同源”(我瞎掰的~),我心想,这有什么难的,可是真正做起来,还是碰到了不少问题。 下面是我的经历: 1.我先是完成了我 阅读全文
摘要:
最近在学习Golang,想着可以就以前的知识做一些串通,加上了解到go语言也是面向对象编程语言之后。在最近的开发过程中,我碰到一个问题,要用go语言实现单例模式。本着“天下知识,同根同源”(我瞎掰的~),我心想,这有什么难的,可是真正做起来,还是碰到了不少问题。 下面是我的经历: 1.我先是完成了我 阅读全文
摘要:
首先将源代码编译、链接生成debug版本的可执行文件,然后通过‘gdb debug版本的可执行文件名’进入调试模式。 a) 单进程、单线程基础调试命令 l 显示main函数所在的文件的源代码 list filename:num 显示filename文件num行上下的源代码 b linenum 给指定 阅读全文
摘要:
1、函数原型: int select(int nfds, struct fd_set *readfds, struct fd_set *writefds, struct fd_set *execptfds, struct timeval * timeout); int poll(struct pol 阅读全文
摘要:
库函数: 库函数是什么?在百度百科中这样解释到:库函数(Library function)是把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。简单来说,就 阅读全文
摘要:
本篇讨论研究C语言编译链接过程。 我们先写一段最简单的C语言代码: 上诉过程可以分解为:预处理、编译、汇编、连接这四个阶段。 一、预编译 最开始我们写完的程序都是以hello.c文件形式储存在计算机磁盘上,并且还有相关的.h头文件。预编译器预编译成一个.i文件。对于C++程序来说,它的源代码文件拓展 阅读全文
摘要:
一、信号机制 正如我们标题所说,信号就是进程间的对话,A进程想要告诉B进程一些事。比如子进程在结束之前就可以给父进程发这样一条“短信”:“嘿,我要结束了,为了避免让我成为僵死进程,快来读取我的信息吧!”这个时候父进程收到了子进程的短信,于是停下手里的工作,花少量时间处理好子进程,再继续进行自己的工作 阅读全文
摘要:
一、直接选择排序 选择排序的思想和冒泡差不多,就是先选出数列中最小或最大的,再选择第二的,不断进行,直到排序完成。它和冒泡不同的是,冒泡排序是交换类排序,是把一个数列假象成两个数列:一个待排序,一个已排序,并且通过不断地把待排序中第一个数插入到已排序数列中合适位置。但是选择类是在每一趟循环中找到最大 阅读全文
摘要:
一、何为僵死进程? 一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁, 而是留下一个称为僵死进程的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵死进程,并不能将其完全销毁)。 在每个进程退出的时候,内核释放该进程所有的资源,包括打开的 阅读全文
摘要:
前一章文章我们简单的说了一下父子进程以及fork函数,那么fork函数创建的新进程与原进程有什么联系呢?如果其中一方结束了会怎么样?他们真的形同父子吗?他们的数据是否共享?以及一些其他的进程问题,这篇文章我们会讲到。 一、父子进程 通过fork函数创建的新进程是原进程的子进程,而调用fork函数的进 阅读全文
摘要:
一、fork函数是什么 fork函数将运行着的程序分成2个(几乎)完全一样的进程。如下图: 进程1在进程关系中我们称之为父进程,进程2就是通过fork产生的,我们叫他子进程。这两个进程在fork执行完之后继续独立进行,但是子进程的fork返回值为0,父进程的fork返回值为子进程的pid(进程id, 阅读全文
|