09 2019 档案
摘要:#include #include #include #include #include #define ONE_SECOND 1000000 #define RANGE 10 #define PERIOD 2 #define NUM_THREADS 4 typedef struct { int *carpark; //用一个数组来模拟停车场停车位 int cap...
阅读全文
摘要:初始化条件变量 函数返回时,创建的条件变量保存在cv所指向的内存中,可以用宏PTHREAD_COND_INITIALIZER来初始化条件变量。值得注意的是不能使用多个线程初始化同一个条件变量,当一个线程要使用条件变量的时候确保它是未被使用的。 条件变量的销毁 条件变量的使用: 使用方式如下: 为什么
阅读全文
摘要:#include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <string.h> /* 声明变量 */ int array_length, file_length; int *array_master; FILE *freader; /* 用于从文件读取数据 */ int *read_file(char *fname)
阅读全文
摘要:#include<dirent.h> #include<limits.h> #include<sys/stat.h> #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<string.h> #define FTW_F 1 //标记非目录文件 #define FTW_D 2 //标记目录文件 #define FTW_DNR
阅读全文
摘要:声明: char *fgets(char *str,int n,FILE* stream) 参数: str—这是指向一个字符数组的指针,该数组存储了要读取的字符串 n – 这是要读取的最大字符数(包括最后的空字符)。通常是使用以str传递的数组长度 stream –这是指向FILE对象的指针,该FI
阅读全文
摘要:如果分配内存减少,realloc仅仅改变索引的信息。 如果将分配的内存扩大,则有一下几种情况: 1) 如果当前内存段后面有需要的内存空间,则直接扩展这段内存空间,realloc()将返回元指针。 2) 如果当前内存段后面的空闲字节不够,那么就实验堆中的第一个能够满足这一要求的内存块,将目前的数据复制
阅读全文
摘要:版本1 两个指针从头到尾和从尾到头交换内容逆序 /*** str_reverse.c ***/ #include<stdio.h> #include<string.h> int main() { char buf[] = "abcdrfg"; int len = strlen(buf); char
阅读全文
摘要:键值对(”key = valude”)字符串,在开发中经常使用; 要求1:请自己定义一个接口,实现根据key获取valude;40分 要求2:编写测试用例。30分 要求3:键值对中间可能有n多空格,请去除空格30分 注意:键值对字符串格式可能如下: “key1 = valude1” “key2 =
阅读全文
摘要:有一个字符串”1a2b3d4z”,; 要求写一个函数实现如下功能, 功能1:把偶数位字符挑选出来,组成一个字符串1。valude;20分 功能2:把奇数位字符挑选出来,组成一个字符串2,valude 20 功能3:把字符串1和字符串2,通过函数参数,传送给main,并打印。 功能4:主函数能测试通过
阅读全文
摘要:字符串作为函数参数传入传出 /*** delSpace.c ***/ #include<stdio.h> #include<string.h> int DelSpace(char *str) { int iRet = -1; int i ; int j ; int ncount = 0; char
阅读全文
摘要:/*** strstr.c ***/ #include<stdio.h> #include<string.h> //求字符串p中abcd出现的次数 //自定义函数接口完成业务函数和main函数分开 int getCount(char *mystr,char *sub,int *ncount) { int ret = 0; if(mystr == NULL || sub == NULL || nco
阅读全文
摘要:结构体dirent: struct dirent { ino_t d_ino; //inode number off_t d_off; //offset to the next diret unsigned short d_reclen; //length of this record unsign
阅读全文
摘要:当文件是一个符号链接时,lstat返回的是该符号链接本身的信息,而stat返回的是该链接指向的文件的信息。 stat结构体中的st_mode则定义了下列数种情况 S_IFMT 0170000 文件类型的位遮罩 S_IFSOCK 0140000 socket S_IFLNK 0120000 符号链接
阅读全文
摘要:编译当前目录下的所有.c文件 用于编译调试指定C代码。 ./make.sh 文件名(必选)debug(调试,可选) exbot@ubuntu:~/shareWin/shell/20190925$ ./4.sh file hello.ctarget hellohellofile world.ctarg
阅读全文
摘要:默认点击“安装VMware Tools(T)”选项下载好安装包 下载的安装包放在计算机的media目录下 进入/media/ubuntu14-04/VMware Tools目录: cd /media/ubuntu14-04/VMware Tools 将安装包复制到tmp文件夹下: cp VMware
阅读全文
摘要:VERSION = 1.0.0 SOURCE = $(wildcard ./*.cpp) OBJ = $(patsubst %.cpp,%.o,$(SOURCE)) INCLUDE = -I /usr/include/mysql/ LIBS = -lmysqlclient LIB_PATH = -L /usr/lib/mysql/ CFALGS = -g TARGET = test ...
阅读全文
摘要:main()函数先调用初始化init(),然后进入循环while()。循环主要三部分: 1.判断用户操作,如果是w或者是空格键被按下,bird就向上飞两行;如果按下q键则退出游戏;z键暂停游戏; 2.移动bird进行重绘 3.判断bird是否撞到柱子 init()函数首先初始化屏幕,调用了ncurs
阅读全文
摘要:将一目录下所有的文件的扩展名改为bak ${i%%.*} 截掉一个变量字符串第一个"."以及其右侧的所有字符,即最短前缀匹配。
阅读全文
摘要:程序内存四区分析: char *from = "abcd"; 操作系统在在常量区分配一个内存存放”abcd”,在栈区定义分配一块内存,取名位from,from指向的这块内存存储“abcd”的首地址。 char buf2[100]; 操作系统在栈区分配一块内存,开头与栈区增长方向相反,大小为100个字
阅读全文
摘要:定时器时间函数 和alarm函数类是,用于定时操作。 函数原型为 其中which参数表示类型,可选的值有: old_value的值一般为NULL。 settimer工作机制是,先对it_value倒计时,当it_value为零时触发信号,然后重置为it_interval,继续对it_value倒计时
阅读全文
摘要:函数原型 指定使用sig指定的信号编号处理信号的方法。参数func指定程序可以处理信号的三种方式之一: 或SIG_DFL要么SIG_IGN被设置为程序启动时每个支持信号的默认信号处理行为。 参数: SIG设置处理功能的信号值,以下宏常量表达式标识标准信号值: 宏 信号 SIGABRT (信号终止)异
阅读全文
摘要:1. vim模式 正常模式(按Esc或Ctrl+[进入) 左下角显示文件名或为空 插入模式(按i进入) 左下角显示--INSERT-- 可视模式(按v进入) 左下角显示--VISUAL-- 替换模式(按r或R开始) 左下角显示 --REPLACE-- 命令行模式(按:或者/或者?开始) ex模式 没
阅读全文
摘要:计算1-100之和 -eq(等于) -ne(不等于) -lt(小于) -le(小于等于) -gt(大于) -ge(大于等于)
阅读全文
摘要:vim ~./vimrc vim /etc/vim/vimrc set nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限 set nu! "显示行号 set guifont=Luxi/ Mono/ 9 " 设置字体,字体名称和字号 filetype on "检测文件的类
阅读全文
摘要:求2个数之和 运行结果: exbot@ubuntu:~/shareWin/linux/shell$ ./sum.sh 1 2The arg in't correct3 $#:相当于C语言的mian函数的(argc-1)传入的参数列表的值,表示输入值的数量减1,这个减去的1就是argv[0]。 其中:
阅读全文
摘要:real 0m3.367s user 0m0.066s sys 0m1.925s 第一种方法结果: 4 /bin/bash 1 /bin/sync 1 /sbin/halt 31 /sbin/nologin 1 /sbin/shutdown 第二种方法结果: /bin/sync 1 /bin/bas
阅读全文
摘要:strlen 和 sizeof 区别 区别 strlen 是一个库函数,而 sizeof 是一个运算符 sizeof 计算的是变量或者类型所占用的内存字节数,而 strlen 计算的是字符串中字符的个数 sizeof 可以用于任何类型的数据,而 strlen 只能计算以 '\0' 结尾的字符串 代码
阅读全文
摘要:fgets(str,n,stdin) 从键盘输入一行,替代gets()。读取到n-1字节时或换行符时终止,如果是文件的话,读到文件结尾也会停止 getline(cin,str) str的类型必须是string类,它是C++特定的字符串类,区别于C的char *数据类型。 cin 输入它会传递并忽略任
阅读全文
摘要:如果要包含多个头文件目录需要 在编译时就不要加-I了
阅读全文
摘要:正则表达式是一个特殊的字符序列,他能帮助你方便的检查一个字符串是否与某种模式匹配。 re.match函数 re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回一个none。 函数语法: re.match(pattern,string,flags=0)
阅读全文
摘要:1.编译目标代码时指定的动态库搜索路径; 2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径; 3.配置文件/etc/ld.so.conf中指定的动态库搜索路径; 4.默认的动态库搜索路径/lib; 5.默认的动态库搜索路径/usr/lib。
阅读全文
摘要:Python两种输出值的方式,表达式语句和print()函数。 第三种方式是使用文件对象的write()方法,标准输出文件可以用sys.stdout的引用。 如果你希望输出的形式更加多样,可以使用str.fomat()函数来格式化输出值。 如果你希望将输出的值转化成字符串,可以使用repr()和st
阅读全文
摘要:open()方法 Python open()方法永于打开一个文件,并返回文件对象,并对文件进行处理过程中都需要用到这个方法,如果该文件无法被打开,则抛出OSError 注意:使用open()方法一定要保证关闭文件对象,即调用close()方法。 open()函数常用形式就是接受两个参数:文件名和模式
阅读全文
摘要:Python3OS文件/方法 os模块提供了非常丰富的方法用来处理文件和目录。 方法 描述 os.access(path,mode) 检验权限模式 os.chdir(path) 改变当前工作目录 os.chflags(path,flags) 设置路径的标记为数字标记 os.chmod(path,mo
阅读全文
摘要:实际当中程序文件比较大,这时候对文件进行分类,分为头文件、源文件、目标文件、可执行文件。也就是说通常将文件按照文件类型放在不同的目录当中,这个时候的Makefile需要统一管理这些文件,将生产的目标文件放在目标目录下,可执行文件放到可执行目录下。 DIR_INC = ./include DIR_SR
阅读全文
摘要:POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例
阅读全文
摘要:正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义。其实grep还可以找出符合某个模式(Pattern)的一类字符串。例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、数字、下划线、小数点或减号,ema
阅读全文
摘要:Sed sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出。sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。 sed命令行
阅读全文
摘要:shell编程 shell历史 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batch),用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把
阅读全文
摘要:列表: Python列表是可变的,这是它区别于字符串数组和元组的最重要的特点。列表可以修改,而字符串和元组不能。 以下是Python中列表的描述方法: 方法 描述 list.append(x) 将元素添加到列表结尾 list.extend(L) 通过添加指定列表的所有元素来扩充列表 list.ins
阅读全文
摘要:多播(组播) 组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。 可使用ip
阅读全文
摘要:运行结果: ubuntu1604@ubuntu:~/wangqinghe/linux/20190831/01$ ./threadpool start thread 0x8285700... start thread 0x7a84700... start thread 0x7283700... poo
阅读全文
摘要:传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。 相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据
阅读全文