
C
船船船船船
记录工作点滴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux下C语言多线程编程实例
linux下C语言多线程编程实例学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。下面是我们的代码:/*thread_example.c : c multiple thread pro转载 2017-03-17 18:04:46 · 825 阅读 · 0 评论 -
友元函数分析
一句话理解:友员是一种“权限”,我把A设置为我的friend (权限任意public,private),A就可以在类外对我进行访问;A访问朋友,通过的媒介是 引用 & 。场景:使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数,数据共享。优点:够提高效率,表达简单、清晰。缺点:友元函原创 2017-12-17 13:43:42 · 286 阅读 · 0 评论 -
STL
STL分为算法,数据结构,迭代器三部分。STL是对数据结构及其相应增删差改排序等操作的封装,面向对象的语言都这样,会主动提供这个对象所拥有的操作。STL的数据结构的实现,算法的实现。都可以用C语言查看。 书目:《stl源码剖析》。STL就是工具集,每使用一种工具,需要包含相应的头文件:向量(vector) 连续存储的元素 PS:底层实现是一个较大的数组列表(原创 2017-12-20 18:39:47 · 270 阅读 · 0 评论 -
二叉树与堆
这两个大佬可谓是没人愿意见到的数据结构,先挑明身份:学过计算机组成原理的都知道,计算机内部靠高低电平(上升沿,下降沿)来区分一个信号。所以,“二叉”这个概念是没跑了的。堆也是二叉的。就常见的而言,最长见的数结构是搜索树,最常见的堆是大(小)根堆。差别就在于,堆的左右节点是没有大小关系的,而树一般是左中右嘛。既然说道这里,扯一句大堆排序,最顶的是max,去掉max节点,层原创 2017-12-20 18:00:50 · 2507 阅读 · 0 评论 -
栈与队列
看C++的STL,看习惯了数据结构,不看底层实现实在是非常难受的一件事情。数据结构的底层无非还是指针和数据单元。实现所用到的数据结构 一般为 数组/指针 配合以 指针进行的。栈的FILO,队列的FIFO。只是挪动指针的逻辑不同,没有新的概念引入。队列:添加(push)的时候尾指针移动,链表尾插。删除(POP)的时候,头指针移动,删除(*f原创 2017-12-20 17:57:43 · 232 阅读 · 0 评论 -
函数指针和赋值 回调函数
问:先定义了个函数:int function(int a, int b){ ..........}main函数里面有个函数指针问题1:那么下面两种对函数指针的赋值哪个是正确的,还是都可以?int main(void){ A: int (*FP)(int, int) = function; B: int (*FP)(int, int) =转载 2017-04-27 22:10:12 · 1714 阅读 · 0 评论 -
socket select()函数详解
select函数的作用: select()在SOCKET编程中还是比较重要的,可是对于初学SOCKET的人来说都不太爱用select()写程序,他们只是习惯写诸如 conncet()、accept()、recv()或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即转载 2017-04-06 14:18:18 · 11940 阅读 · 0 评论 -
经典 C语言 socket SERVER,CLIENT 端代码实现
server 端代码:server.c ==================================================================== #include // for sockaddr_in#include // for socket#include // for socket#include转载 2017-04-01 12:00:57 · 5549 阅读 · 0 评论 -
socket bind() 方法
名称bind()把名字和套接字相关联使用格式#include sys/types.h>#include sys/socket.h>int bind(int sockfd,const struct sockaddr *addr,socklen_t *addrlen);功能描述当用socket()函数创建套接字以后,套接字在名称空间(网络地址族)中存在,但没有任何地转载 2017-04-01 11:41:52 · 1662 阅读 · 1 评论 -
socket的一些方法
1. InputStream getInputStream() 从socket中获取输入流2. OutputStream getOutputStream() 从socket中获取输出流3. int getLocalPort() 获取本地的端口,端口用于监听服务器端的返回值,如果没绑定则为-14. int getPort() 获取连接的服务器端的连接端口,如果没连接则为05. InetAddress转载 2017-04-01 10:01:13 · 640 阅读 · 0 评论 -
UDP bind() IP和prot
socket通信关于bind端口和IP2015-05-11 10:53 2007人阅读 评论(0)收藏举报本文章已收录于:分类: Linux开发(17) 作者同类文章X结论:1、采用TCP通信时,客户端不需要bind()他自己的IP和端口号,而服务器必须要bind()自己本机的IP和端口转载 2017-04-07 10:28:34 · 3218 阅读 · 0 评论 -
UDP bind 端口和IP
结论:1、采用TCP通信时,客户端不需要bind()他自己的IP和端口号,而服务器必须要bind()自己本机的IP和端口号;2、若采用UDP通信时(这里是有客户端和服务器之分才这么说的,若是指定特定端口的UDP对等通信则不一样了),客户端也可以不需要bind()他自己的IP和端口号,而服务器需要bind自己IP地址和端口号;原因:1、因为服务器是时时在监听有没有客户端的连接,如果服务器不绑定IP和转载 2017-04-07 10:25:20 · 12540 阅读 · 2 评论 -
文件指针和文件描述符的区别
在linux系统中把设备和普通文件也都看做是文件,要对文件进行操作就必须先打开文件,打开文件后会得到一个文件描述符,它是一个很小的正整数,是一个索引值。 内核会为每一个运行中的进程在进程控制块pcb中维护一个打开文件的记录表,每一个表项都有一个指针指向打开的文件,上边的索引值是记录表的索引值。 文件描述符的优点:兼容POSIX标准,许多系统调用都依赖于它;缺点是不能移植到unix之转载 2017-03-27 20:35:40 · 246 阅读 · 0 评论 -
文件操作(文件描述符)
FILE*:它是C库中定义的一个结构体指针,我们在C语言文件操作时打开一个文件返回的指针类型就是它,在C库中是这样定义的,其中的_file它是一个整数,就是作为文件索引的描述符,C库是建立在系统调用上的,这个FILE结构体可以说是一个包装,底层还是用文件描述符对磁盘上的文件进行连接的。文件描述符:在Linux系统中每打开一个文件就会获取一个文件描述符,他是一个小整数,在linux下0号1号转载 2017-03-27 20:27:37 · 1080 阅读 · 0 评论