Linux环境编程
vanturman
这个作者很懒,什么都没留下…
展开
-
vim创建代码时自动化添加注释
打开~/.vimrc文件,在最后一行下面添加如下如下代码: autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" "新建.py,.cc,.java,.sh, "定义函数SetTitle,自动插入文件头 func SetTitle() if expand("%:e") == 'cc' c...原创 2018-07-10 19:50:11 · 904 阅读 · 1 评论 -
Linux中主线程和子线程的终止次序
Linux中pthread是我们进行多线程并发时经常使用的,pthread创建的子线程和主线程的终止顺序有什么样的关系,下面通过代码来总结下。在代码测试前,先说下结论: (1)主线程和子线程之间没有必然的退出次序关系。主线程退出,子线程可以继续执行;子线程退出,主线程也可以继续执行。 (2)程序加载到内存中执行的时候,进程就会生成一个主线程。虽然主线程和子线程之间没...原创 2018-11-28 17:05:50 · 7503 阅读 · 1 评论 -
Linux环境变量介绍
环境变量就是系统或软件设置的一些参数,用户环境变量就是用户登录系统后,都有自已专用的运行环境。在Windows系统中用户环境变量保存在用户家目录,Linux也是同样的。本文主要是讲解Linux常用的环境变量和环境变量的设置。一、环境变量相关操作(只应用于当前,要永久保存需要写入到相关文件。)#echo $PATH 显示PATH设置。#env 显示当前用户变量。#set 显...转载 2018-11-28 10:59:18 · 250 阅读 · 0 评论 -
Pthread多线程学习(1)
Table of Contents一、概要介绍二、pthread线程三、互斥锁四、条件变量五、总结条件变量中的虚假唤醒问题pthread_cond_wait() 函数joinabler和detach一、概要介绍多线程开发在 Linux 平台上已经有成熟的 Pthread 库支持。其涉及的多线程开发的最基本概念主要包含三点:线程,互斥锁,条件变量。其中,线程操...原创 2018-11-26 17:15:47 · 235 阅读 · 0 评论 -
xargs命令详解
阅读目录为什么要用xargs,问题的来源 xargs是什么,和管道有什么不同 xargs的一些选项为什么要用xargs,问题的来源在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别。为什么要用xargs呢,我们知道,linux命令可以从两个地方读取要处理的...转载 2018-11-21 16:57:57 · 25544 阅读 · 5 评论 -
Linux进程间通信(2)- 消息队列
1 简介Linux和类Linux系统下进程间通信(Inter-Process Communication, IPC)有很多种方式,包括套接字(socket),共享内存(shared memory),管道(pipe),消息队列(message queue)等,各自有各自的一些应用场景和用途,本次来介绍消息队列。消息队列的机制如下图所示,Linux系统会维护一个队列,消息发送者通过系统API向...原创 2018-11-21 15:50:51 · 295 阅读 · 0 评论 -
Linux进程间通信(1)- 信号(signal)机制
1 概述Linux和类Linux系统下进程间通信(Inter-Process Communication, IPC)有很多种方式,包括套接字(socket),共享内存(shared memory),管道(pipe),消息队列(message queue)等[1],各自有各自的一些应用场景和用途,这次就来总结一下通过信号(signal)的机制。信号,是Linux中向进程发送的消息,接收到该信号...原创 2018-11-20 23:20:23 · 1541 阅读 · 0 评论 -
Linux下定时器的设置
1. alarm函数[1] 引用头文件:#include <unistd.h>; [2] 函数标准式:unsigned int alarm(unsigned int seconds); [3] 功能与作用:alarm()函数的主要功能是设置信号传送闹钟,即用来设置信号SIGALRM在经过参数seconds秒数后发送给目前的进程。如果未设置信号SIGALARM的处理函数,...原创 2018-11-16 08:45:08 · 8912 阅读 · 2 评论 -
Linux文件IO和标准IO
Linux 文件IOLinux中做文件IO最常用到的5个函数是: open , close , read , write 和 lseek ,不是ISO C的组成部分,这5个函数是不带缓冲的IO,也即每个read和write都调用了内核的一个系统调用。#include <fcntl.h>#include <unistd.h>int open(const ch...原创 2018-11-13 21:46:52 · 539 阅读 · 0 评论 -
Linux截取文件指定行数之间的内容
在集群上跑数据时市场会出问题,为了方便查看日志个人喜欢将日志下载本地使用notepad查看,但是由于集群是公用资源,每一个日志文件都会非常大,如图:不便于下载到本地进行查看,为了可以将你关注的部分日志下载到本地,可以进行如下操作:1: 确定有自己业务有关的日志在文件中的行数 grep -n "业务有关的关键字" hive.log.2018-06-26图中关键字为0201...转载 2018-09-03 16:57:22 · 14239 阅读 · 0 评论 -
google 工具 gflags
简单介绍gflags 是 google 开源的用于处理命令行参数的项目。安装编译项目主页:gflags➜ ~ git clone https://github.com/gflags/gflags.git # 下载源码➜ ~ cd gflags➜ gflags git:(master) ✗ mkdir build && cd build # 建立文件夹...转载 2018-08-23 12:31:20 · 247 阅读 · 0 评论 -
Linux下编程用到的锁
线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。在某一时刻,只有一个线程可以获...原创 2018-08-15 16:40:51 · 357 阅读 · 0 评论 -
RPC协议
rpc是远程程序调用,调用协议通常包含 1)传输协议 和 2)编码协议 传输协议(用于数据传输):grpc使用HTTP2协议,dubbo使用自定义报文的TCP协议,还有 MQ 编码协议(用于数据序列化):基于文本编码的xml、json,基于二进制编码protobuf等 feature1:通用定义的 http1.1 协议的 tcp 报文中有效编码占比比较少,一个 POST 协议的格式大...原创 2018-08-14 18:36:47 · 991 阅读 · 0 评论 -
Linux中的sed命令
sed命令概述sed全称是 stream editor,即流编辑器。sed命令一次处理一行内容,把当前处理的行存储在临时缓冲区中,称为“模式空间”,然后sed命令处理缓冲区中的内容,处理完成后,将缓冲区的内容输出到屏幕。然后,接着处理下一行,这样不断重复,直到文件末尾。在操作中,除非重定向存储输出,否则只改变缓冲区中的内容,文件内容并没有改变。 sed命令是Linux中非常重要的一个文本...原创 2018-07-17 16:11:43 · 196 阅读 · 0 评论 -
Linux研发入门篇(一)
一:前言对于想要在Linux下C/C++下开发稍微大型的程序的程序员们都知道,在Linux下处理头文件是一件很头大的事情。比如使用printf函数这种C函数库则需要引用#include <stdio.h>,使用C++中的STL的map容器则要#include <map>,使用socket网络编程则要#include <sys/socket.h>,我们思考下uin...原创 2018-06-28 18:05:05 · 266 阅读 · 0 评论 -
Linux中线程池简介与实现示例
池由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资源的速...原创 2018-12-12 20:07:34 · 375 阅读 · 0 评论