
linux环境编程
nguliu
这个作者很懒,什么都没留下…
展开
-
g++链接动态库和静态库问题
在用g++编译链接C++程序时,当我们其中有包含第三方库的时候,需要我们手动的指定我们需要的库文件。库文件有两种,一种为动态库,一种为静态库,具体的区别很简单,通俗的讲,动态库是在运行时动态加载,静态库是在链接的时候直接把库文件复制到程序中,运行的时候不再依赖库文件。例如我们在程序中用到libtiff库和libxml2库:1.动态库的链接g++ *.cpp -o main -I./kufil...转载 2019-11-22 17:11:20 · 1663 阅读 · 0 评论 -
使用条件变量时的线程虚假唤醒
在学习muduo网络库时,看见以下代码段,然后就想为什么要用while循环,做出了以下猜想:T take() { MutexLockGuard lock(mutex_); //always use a while-loop, due to spurious wakeup while (queue_.empty()) { notEmpty_.w...原创 2019-07-16 09:15:44 · 321 阅读 · 0 评论 -
关于信号量与信号集的使用浅析
1.函数 pthread_cond_wait函数原型: int pthread_cond_wait(pthread_cond_t* cond, pthread_mutex_t* mutex);函数作用: 使调用线程阻塞等待条件变量 cond参数: cond: 调用线程需要阻塞等待的条件变量 mutex:一个锁住的互斥量。因为 cont 本身就是一个临界资源,所以对 c...原创 2019-04-19 23:01:29 · 735 阅读 · 0 评论 -
利用 mmap 实现进程之间的通信
1.mmap 使用的注意事项(1)当 open 一个文件时,如果指定了 O_CREAT 标志并且文件不存在,就会新创建一个文件作为映射文件,此时必须调用 ftruncate 或者 lseek+write 设置文件长度,否则任然可以调用 mmap,但是对存储映射区的引用会产生 SIGBUS。另外,如果映射的长度超过了文件长度,访问超过文件长度的映射区也会出错。(2)munmap 释放映射区时...原创 2019-04-22 01:26:59 · 2962 阅读 · 0 评论 -
linux环境编程之——shell实现
#include <stdio.h> #include <stdlib.h> #include <ma...原创 2019-04-14 00:05:43 · 158 阅读 · 0 评论 -
linux环境编程之——ls -al
#include <stdio.h> #include <sys/types.h> #include <sy...原创 2019-04-11 22:15:56 · 210 阅读 · 0 评论 -
linux环境编程之——cp
#include <stdio.h> ...原创 2019-04-11 22:09:59 · 133 阅读 · 0 评论 -
gdb用法详解
一.一个简单的调试示例1.调试程序//debugtest.c#include <stdio.h>int main(void){ int i; char input; for(i=0;i<2;i++){ printf("pleast input a character:\n"); scanf("%c",&input); switch(i...原创 2018-12-01 16:45:28 · 1047 阅读 · 0 评论 -
Linux常用命令大全
系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使用的内核版本dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda 罗列一个磁盘的架构特性hdparm -tT /dev/sda 在磁盘上执行测试性读取操作cat /proc/cpuinfo 显...转载 2018-10-24 14:40:50 · 159 阅读 · 0 评论 -
shell编程详解
本文摘要本文主要从以下8 个方面介绍Linux下的shell编程:一、Shell 编程概述 二、Shell 关键字 三、Shell 变量 四、Shell 运算 五、Shell 语句 六、Shell 函数 七、Shell 调试 八、Shell 易错点一、Shell 编程概述shell编程是 Linux 下的一门脚本语言——Shell 脚本。这个脚本语言可以帮助我们简化很多...原创 2018-07-28 16:51:57 · 2687 阅读 · 1 评论