不忘初心的专栏

分享学习的点点滴滴,欢迎交流。

Linux C的select函数的使用

1、select函数简介int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval*timeout); 当服务器响应多个客户端连接的时候,需要定义一个线程函数,在每一个线程函数里面处理...

2015-08-31 22:57:14

阅读数:6267

评论数:1

哲学家吃饭问题 代码实现如何 避免线程死锁

问题描述:     假设有5个哲学家,他们花费一生中的时光思考和吃饭。这些哲学家共用一个圆桌,每个哲学家都有一把椅子。在桌子中央是一碗通心面,在桌子上放着5只筷子。当一个哲学家思考时,他与其他同事不交互。时而,哲学家会感到饥饿,并试图拿起与他相近的两只筷子(他与邻近左、右之间的筷子)。一只筷子一...

2015-08-31 21:29:23

阅读数:1369

评论数:0

Linux C打印所有的环境变量

1、在终端显示环境变量执行env命令nii@mmch:~/code$ env LC_PAPER=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 XDG_SESSION_ID=4 LC_MONETARY=zh_CN.UTF-8 TERM=xterm SHELL=/bin/bas...

2015-08-31 14:18:18

阅读数:2177

评论数:0

Linux系统文件描述符理解

1、查看系统文件描述符个数。以下是查看Linux文件描述符的三种方式:[root@localhost ~]# sysctl -a | grep -i file-max --colorfs.file-max = 392036[root@localhost ~]# cat /proc/sys/fs/f...

2015-08-31 11:01:08

阅读数:1769

评论数:0

Linux进程通信---信号量 代码实现

1、信号量使用流程(1)获得keyVal值值要一样。keyVal = ftok(PATH_SHM,PRI_SHM_ID);(2)创建信号量或打开信号量的键值nSemid = semget(keyVal,1,IPC_CREAT);(3)设置信号量 semctl(nSemid,0,SETVAL,1)(...

2015-08-30 23:57:19

阅读数:752

评论数:0

Linux进程通信---消息队列 代码实现

1、消息队列函数的使用“消息队列”是在消息的传输过程中保存消息的容器。当消息从队列内取出后,相应的消息就从队列中删除了。(1)ftok获得唯一的key值key_t ftok(const char *pathname, int proj_id);pathname就是你指定的文件名(已经存在的文件名)...

2015-08-30 23:29:17

阅读数:432

评论数:0

Linux进程通信---共享内存 代码实现

1、什么是共享内存      共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它,修改它。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以...

2015-08-30 23:05:45

阅读数:1082

评论数:0

Linux进程间通信---有名管道 代码实现

一、管道通信的注意事项 (1)执行mkfifo file命令来创建一个管道文件。[admin@localhost code]$ mkfifo pipe [admin@localhost code]$ ls -l total 0 '''p'rw-rw-r-- 1 admin admin 0 8月 ...

2015-08-30 20:15:37

阅读数:994

评论数:0

Linux进程与线程的区别和联系

1、两者区别:(1)进程是比较大的单位,一个进程可以有多个线程,一个线程只能被一个进程拥有。 (2)进程是资源分配的基本单位,线程是处理机制调度的最小单位,所有的线程共享其所属进程的所有资源与代码。 (3)线程执行过程中容易同步,而进程之间需要通信进行同步。 (4)线程共享进程数据的同时,拥...

2015-08-30 19:42:49

阅读数:530

评论数:0

强制使用处于TIME_WAIT的TCP状态的socket地址

在bind函数之前添加上这句话就可以了。int isReuse = 1; setsockopt(nSocketFd,SOL_SOCKET,SO_REUSEADDR,(const char*)&isReuse,sizeof(isReuse));

2015-08-30 18:59:24

阅读数:350

评论数:0

Linux地址信息函数:获取本端和远端的socket地址

1、在某些情况下想知道一个连接着的socket的本端地址,以及远端的socket地址,可以使用下面的两个函数。获取本端的socket地址:#include <sys/socket.h>int getsockname(int sockfd, struct sockaddr *addr, ...

2015-08-30 17:28:46

阅读数:1528

评论数:0

Linux C标准IO库函数详解 一

1、open/close open函数可以打开或者创建一个文件#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int ...

2015-08-30 14:21:37

阅读数:1145

评论数:0

Linux文件系统简介

1、文件系统里面的几个概念 超级块 块组描述符表 数据块 块位图 inode节点 inode位图 2、概念理解 (1)超级块      在Linux系统中把磁盘分成一个个的数据块来存储数据,超级块存储整个分区的系统信息,包括 块大小,文件系统版本号,上次mount的时间等等 (2)块...

2015-08-30 00:37:55

阅读数:408

评论数:0

华为机试:计算两个字符串的最大公共字串的长度,字符不区分大小写

#include <iostream> #include <string> #include <stdlib.h>using namespace std;int getCommonStrLength(char * pFirstStr, char * pSecon...

2015-08-28 23:10:34

阅读数:1039

评论数:0

数据结构:C语言实现构建哈夫曼树

哈夫曼树(霍夫曼树)又称为最优树.1、路径和路径长度      在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。2、结点的权及带权路径长度       若将树中结点赋给一个有着...

2015-08-28 15:08:12

阅读数:5693

评论数:0

数据结构:树、森林和二叉树的转换

1、树转换为二叉树 (1)加线。在所有兄弟结点之间加一条连线。 (2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。 (3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换...

2015-08-28 10:24:51

阅读数:1390

评论数:0

洗牌算法:随机打乱一个数组

解题思路:      随机的取出一个(0 - n)之间的数据与a[0]交换。      随机的取出一个(1 - n)之间的数据与a[1]交换。      随机的取出一个(2 - n)之间的数据与a[2]交换。      ……………..     随机的取出一个(n-1 - n)之间的数据与a...

2015-08-27 11:18:29

阅读数:792

评论数:0

C语言结构体的字节对齐

下面直接来看例子吧:测试环境为32位的系统以下结构体分别占多少字节:struct A { char a; char b; char c; };sizeof(A) = 3; //因为a、b、c按照1个字节进行对齐struct B { int a; char b; short c; };sizeof...

2015-08-26 21:59:50

阅读数:463

评论数:0

C语言实现二叉排序树

#include <stdio.h> #include <string.h> #include <stdlib.h>/* 定义结构体 */ typedef int TypeData; typedef struct stBiTreeNode { Typ...

2015-08-25 21:57:46

阅读数:1350

评论数:0

华为机试题: 字符串逆序

描述 将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符。 如:输入“I am a student”,输出“tneduts a ma I”。输入参数: inputString:输入的字符串返回值: 输出转换好的逆序字符串知识点 字符串 运行时间限制 10M 内存限...

2015-08-25 10:08:39

阅读数:1485

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭