Linux
文章平均质量分 53
ClouddRenn
一日复一日 功到自然成
展开
-
shell脚本父脚本传入子脚本中带空格参数问题
shell脚本中变量存在空格的处理原创 2022-09-25 11:16:19 · 1041 阅读 · 1 评论 -
Android valgrind 使用
文章目录1、编译valgrind程序及相关库2、push valgrind及相关库到android设备3、设置权限4、设置默认日志输出路径权限5、设置属性,用于检查Service或者Activity6、设置环境变量7、执行logcat 查看valgrind打印日志8、另开一个终端,重新启动app参考1、编译valgrind程序及相关库cd <aosp>/external/valgrind/mm注:如果后续使用出现未识别操作时,需要下载valgrind高版本源码重新编译http://原创 2021-08-20 11:31:34 · 1184 阅读 · 0 评论 -
gcc debug level 说明
文章目录gcc -glevel 说明参考gcc -glevel 说明optiondescription-g0no debug information-g1minimal debug information,没有局部变量信息-gdefault debug information,包含局部变量信息-g3maximal debug information,包含宏定义信息参考[1] gcc -g flag[2] gcc debug options.原创 2020-07-17 10:43:37 · 1310 阅读 · 0 评论 -
Ubuntu VirtualBox 安装问题解决
Ubuntu VirtualBox 安装问题解决前言制造问题解决问题参考前言想在Ubuntu上跑一下as玩玩,那就必须得装个虚拟机virtualbox,没成想出了问题。安装命令:sudo apt-get install virtualbox制造问题安装过程说有些警告信息,但是还是结束了,没放心上,结果执行报错信息如下:reny@myubuntu:~$ virtualboxWARNING: The vboxdrv kernel module is not loaded. Either the原创 2020-07-16 15:04:39 · 1857 阅读 · 3 评论 -
系统安全之sudo
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。 语法 sudo(选项)(参数) 选项 -b:在后台执行指令; -h:显示帮助; -H:将HOME环转载 2015-10-25 09:12:37 · 984 阅读 · 0 评论 -
进程和作业管理之pstree
pstree命令以树状图的方式展现进程之间的派生关系,显示效果比较直观。 语法 pstree(选项) 选项 -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示; -c:不使用精简标示法; -G:使用VT100终端机的列绘图字符; -h:列出树状图时,特别标明现在执行的程序; -H:此参数的效果和指定"-h"参数类似,但特别标明指定的程序; -l:采用长列转载 2015-10-25 09:02:13 · 296 阅读 · 0 评论 -
进程和作业管理之ps
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。 语法 ps(选项) 选项 -a:显示所有终端机下执行的程序,除了阶段作业领导者之外。转载 2015-10-25 08:58:04 · 346 阅读 · 0 评论 -
进程和作业管理之ipcs
ipcs命令用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。 语法 ipcs(选项) 选项 -a:显示全部可显示的信息; -q:显示活动的消息队列信息; -m:显示活动的共享内存信息; -s:显示活动的信号量信息。 实例 ipcs -a------------ 共享内存段 --------------键转载 2015-10-25 08:53:14 · 435 阅读 · 0 评论 -
进程和作业管理
init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。 语法 init(选项)(参数) 选项 -b:不执行相关脚本而直接进入单用户模式; -s:切换到单用户模式。 参数 运行等级:指定Linux系统要转载 2015-10-25 08:48:20 · 422 阅读 · 0 评论 -
进程和作业管理之renice
renice命令可以修改正在运行的进程的调度优先级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。 语法 renice(选项)(参数) 选项 -g:指定进程组id; -p:改变该程序的优先权等级,此参数为预设值。转载 2015-10-25 08:45:03 · 355 阅读 · 0 评论 -
编程开发之make
make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码问价,以实现工程化的管理,提高开发效率。语法 make(选项)(参数) 选项 -f:指定“makefile”文件; -i:忽略命令执行返回的出错信息;-s:沉默模式,在执行之前不输出相应的命令行信息; -r:禁止使用build-in规则; -n:非执行模式,输出所有执行命令,但并不执行; -t:更新目转载 2015-10-25 08:38:12 · 377 阅读 · 0 评论 -
编程开发之GCC
gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器,具有功能强大,编译代码支持性能优化等特点。现在很多程序员都应用GCC,怎样才能更好的应用GCC。目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。 语法 gcc(选项)(参数) 选项 -o:指定生成的输出文件; -E:仅执行编转载 2015-10-25 08:35:43 · 315 阅读 · 0 评论 -
centos7 远程失败问题排查
背景服务器启动失败 问题排查难点无法找到日志查询具体问题解决方法首先进入服务器机器终端(远程是不行的 网络服务被关闭 无法进行远程的)具体操作根据系统不同而异Centos7 是 Ctrl + alt + F2进入后service status NetworkMangaer-wait-online…结果显示这个服务没有起得来直接disable掉systemctl disabl...原创 2020-04-01 17:54:45 · 1399 阅读 · 0 评论 -
双系统给ubuntu扩展下硬盘
背景ubuntu分区硬盘空间不够 需要增加空间方法使用软件 gparted1、安装sudo apt-get install gparted2、使用sudo swapoff -asudo gparted出现的界面中选择一个比较大的windows分区右键选择"更改大小/移动®"并单击弹出界面中修改你需要的空间大小 我这里很粗暴的直接拿了100个G 其实真实是97.66GB之...原创 2020-03-02 21:07:55 · 369 阅读 · 0 评论 -
三个同步与互斥问题之哲学家就餐
#include#include #include//筷子作为mutex pthread_mutex_t chopstick[5] ; int eatnum[5]={5,5,5,5,5};void *eat_think(void *arg) { int i= *(char *)arg; int left,right; //左右筷子的编号原创 2015-07-26 19:58:23 · 932 阅读 · 0 评论 -
编写自己的Shell解释器
==================================================START========================================================摘要:本期的目的是向大家介绍shell的概念和基本原理,并且在此基础上动手做一个简单shell解释器。同时,还将就用到的一些 linux环境编程的转载 2015-07-16 10:04:42 · 532 阅读 · 0 评论 -
CPU大小端字节序的检测
机器的字节序有两种,即大端字节序和小端字节序。 大端字节序:在内存中,低地址存放数据的高位,高地址存放数据的低位 小端字节序:在内存中,低地址存放数据的低位,高地址存放数据的高位 如例:定义数据 a = 0x01020304 小端方式:01 02 03 04 大端方式:04 03 02 01那么转载 2015-07-27 18:21:37 · 984 阅读 · 0 评论 -
linux 进程理解
一.查看命令ps 命令查看当前运行进程man psman 7 signal pstree 可以查看所有的进程之间的联系ps -e查看后台进程后台运行的进程占用极少资源(系统内部)杀死某些进程 kill -9 pidpid是每个进程都有的一个ID号,就跟身份证号一样二.相关的系统调用1)getpid,getppid,exit2)f原创 2015-07-15 11:07:07 · 616 阅读 · 0 评论 -
Udp心跳包代码
//1.client.c#include#include #include#include#include#include #include #include#include#include #include #include #include #include #include#define IP "127.0.0.1"原创 2015-07-26 19:53:06 · 3272 阅读 · 0 评论 -
rsync+inotify实现实时同步案例
转自:http://chocolee.blog.51cto.com/8158455/1400596随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这转载 2015-07-16 10:48:04 · 573 阅读 · 0 评论 -
ubuntu中文手册安装
1.sudo apt-get install get2.git clone https://github.com/lidaobing/manpages-zh.git3.sudo mkdir /usr/local/zhman4.cd manpages-zh5.sh autogen.sh6.sudo ./configure --prefix=/usr/local/zhman原创 2015-08-09 12:28:27 · 462 阅读 · 0 评论 -
linux线程
线程 区别于进程它用于通信并发机制意义:线程之间资源共享,弥补了进程的不足(进程资源独立)区别:1.进程是资源分配和管理的最小单位 线程是系统调度的最小单位2.关系 一个进程可以包含多个线程3.进程之间资源独立,一个进程包含的线程之间资源共享4.资源使用限制线程 ---人为控制,一般不超过10M,例如栈空间进程 ---内存大小原创 2015-07-16 13:02:27 · 363 阅读 · 0 评论 -
文件内容的清除
想到两种方法-1.用空格覆盖所有内容(有问题,内容全变成空格) int fd=open(filename,O_RDWR) struct stat stBuf; stat(filename,&stBuf); len=stBuf.st_size; char *szBuf=(char*)malloc(len); write(fd,szBuf,len)原创 2015-08-01 13:55:30 · 514 阅读 · 0 评论 -
三个同步与互斥问题之生产者与消费者
#include#includepthread_mutex_t mutex;#define Max 10pthread_cond_t pro;pthread_cond_t con;int buffer=0;//全局变量----一开始为0,只有生产者可以执行void deal_produce(void *arg){//消费---int i原创 2015-08-01 14:13:20 · 608 阅读 · 0 评论 -
TCP三次握手详解!
TCP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置)转载 2015-07-21 21:10:13 · 660 阅读 · 0 评论 -
进程间通信
传统进程间通信方式 无名管道 pipe 有名管道 fifo 信号 signalsystem V IPC对象 共享内存 share memory 消息队列 message queue 信号灯 semaphoreBSD 套接字 socket管道是基于文件描述符的通信方式。 无名管道 int pip转载 2015-08-02 12:27:48 · 259 阅读 · 0 评论 -
精灵进程的创建
//代码1--实现延时--由于后台运行可能感觉不明显//想要结束它,我只想到关机重启;查看的话,ps -ef#include #include #include #include #include #include #include #include #include /* * 精灵进程的实现 */原创 2015-08-02 19:58:06 · 521 阅读 · 0 评论 -
c字符串处理函数
函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "abcdefghi"; stpcpy(s转载 2015-08-02 20:15:25 · 408 阅读 · 0 评论 -
消息队列创建以及使用示例
消息队列是消息的链接表,存放在内核中并由消息队列标示符标识。1. 创建或打开一个队列 int msgget(key_t key, int flag); key: 键 由ftok()生成 key_t ftok(const char* path, int id); flag: IPC_CREAT 或 IPC_EXCL转载 2015-08-02 19:37:13 · 545 阅读 · 0 评论 -
浅谈linux内存管理
经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。AD:经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存转载 2015-08-02 19:49:40 · 431 阅读 · 0 评论 -
POSIX互斥锁
一、什么是互斥锁 另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。 互斥量函数有 pthread_mutex_init 初始化一个互斥量 pthread转载 2015-08-04 13:23:38 · 410 阅读 · 0 评论 -
Linux Shell常用技巧
1. Linux的实时监测命令(watch): watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动运行。该命令最为常用的两个选项是-d和-n,其中-n表示间隔多少秒执行一次"command",-d表示高亮发生变化的位置。下面列举几个在watch中常用的实时监视命令: /> watch -d -n 1 'who' #每隔一秒执行一次wh转载 2015-08-04 08:05:43 · 303 阅读 · 0 评论 -
linux c 简单端口扫描程序
#include #include #include #include #include #include #include #include #include #include #include #include #include #include int SERVER_PORT= 1;#define SERVER_IP "127.0.0.1"#defi原创 2015-08-04 21:03:06 · 2469 阅读 · 1 评论 -
消息队列再整理二
一个消息队列是一个消息的链表,存储在内核里,并由一个消息队列标识符标识。我们将只称消息队列为一个队列,称它的标识符为一个队列ID。SUS包含了一个替代的IPC消息队列的实现,在实时扩展的消息传递选项里。我们不在本文包含实现扩展。一 个新的队列被创建或一个已有队列被打开,通过msgget。新的消息被加入到一个队列的尾部,通过msgsnd。每个消息有一个正的长整转载 2015-08-05 07:21:30 · 1169 阅读 · 0 评论 -
消息队列再整理
ftok()#include #include 函数原型: key_t ftok( const char * pathname , int proj_id );参数: pathname 就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽 然为int,但是只有8个比特被使用(0-255)。转载 2015-08-05 07:16:55 · 407 阅读 · 0 评论 -
同一进程的线程共享哪些资源
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。转载 2015-08-20 22:08:11 · 674 阅读 · 0 评论 -
C++ string使用详解
#include#includeusing namespace std;void Test(){//1.初始化 & size string str="987654321";//1初始化 大小为0 size() 为9 string str2(8,'1');//2.初始化 string str3;//3初始化 cout<<"str3 "<<str3<<endl; //原创 2015-09-10 20:40:47 · 489 阅读 · 0 评论 -
static使用相关详解
//01static.cc#includeusing namespace std;void Test1(){//局部静态变量 //---1.只能使用在该函数作用范围,就是说在该函数函数体内可以使用(必须在定义结束后) //---2.若重复调用该函数,由于该静态变量a只定义一次,数据会使用改变了的 //---3.与普通局部变量的区别:静态局部变量只有当程序结束才释放内存,而普通局原创 2015-09-07 11:16:44 · 532 阅读 · 0 评论 -
vim集成开发环境搭建之ctags配置使用
1.安装ctagssudo apt-get install ctags2.解压glibc源码包如: 解压glibc-2.20.tar.gz建立源码索引,比如对gnu的libc库做一个索引,而这些代码放在/home/username/glibc-2.20/tar -zxvf glibc-2.20.tar.gz -C ~/3.进入该解压目录,并建立索引文件cd ~//g原创 2015-10-17 10:24:28 · 489 阅读 · 0 评论 -
快速排序算法-容器存储vector
int quicksort(vector &v, int left, int right){ if(left int key = v[left]; int low = left; int high = right; while(low while(lo转载 2015-10-17 12:45:01 · 388 阅读 · 0 评论