Linux
wangwuyy
这个作者很懒,什么都没留下…
展开
-
valgrind使用
内存检查工具valgrind,可以检测内存泄漏,非法地址读写等。valgrind下载https://www.valgrind.org/https://www.valgrind.org/downloads/编译安装(可以直接查看README文档来确认安装过程)这里是编译的ARM64,所以看README.aarch64Buildingcross compiling export CC=aarch64-linux-gnu-gcc export LD=aarch64-linux-gnu-l原创 2021-07-20 16:44:30 · 249 阅读 · 0 评论 -
系统调用和函数调用
系统调用和函数调用的区别系统调用操作系统服务的编程接口通常由高级语言编写(C或C++)程序访问通常通过高层次 的API接口(C标准库的库函数)而不是直接进行系统调用每个系统调用对应一个系统调用编号系统调用与函数调用的区别系统调用1.使用INT和IRET指令,内核和应用程序使用的是不同的堆栈,因此存在堆栈的切换,从用户态切换到内核态,从而可以使用特权指令操控设备2.依赖于内核,不保证移植性3.在用户空间和内核上下文环境间切换,开销较大4. 是操作系统的一个入口点函数调用1.使用CAL转载 2021-07-20 10:03:18 · 1272 阅读 · 0 评论 -
大小端:字节序与比特序
https://blog.csdn.net/fzy0201/article/details/26876711前言前两天被问到一个关于大小端的问题,很久没接触,回答的支支吾吾,说到底还是自己对这个了解的不彻底,今天补上。大小端这里明确下,大小端包括字节序和比特序。他们的概念其实也是类似的,区别就如同他们名字,最小排序单位分别是字节与比特。如果不是做芯片或者网络、通信协议,搞计算机的一般都不涉及也不关心比特序。关于大小字节序或比特序的定义,这里不多做说明。记住一句话,“高高低低是小端“就够了,即高位字转载 2021-07-15 17:48:46 · 334 阅读 · 0 评论 -
socket函数的第三个参数
https://blog.csdn.net/qiuchangyong/article/details/50099927对于socket(AF_INET, SOCK_RAW, IPPROTO_IP),其原型为int socket (int domain, int type, int protocol);1 参数protocol用来指明所要接收的协议包,如果是象IPPROTO_TCP(6)这种非0、非255的协议,当操作系统内核碰到ip头中protocol域和创建socket所使用参数protocol相同转载 2021-04-28 19:59:49 · 1182 阅读 · 0 评论 -
“undefined reference to“ 问题解决方法
https://blog.csdn.net/KgdYsg/article/details/90705766转载 2021-04-06 22:17:00 · 552 阅读 · 0 评论 -
FTP与SFTP
https://network.51cto.com/art/201909/603552.htm原创 2020-04-29 11:56:31 · 219 阅读 · 0 评论 -
dpdk基础模块之rte_mbuf详解
Rte_mbuf 转自:http://www.cnblogs.com/ziding/p/4214499.html 本文假定报文的长度不超过rte_mbuf->buf_len的长度。内存结构分配操作Mbuf由缓冲池rte_mempool管理,rte_mempool在初始化时一次申请多个mbuf,申请的mbuf个数和长度都由用户指定。宏MBUF_SIZE是例子程序中使用的mbuf长度:#define转载 2017-11-10 15:40:02 · 3353 阅读 · 1 评论 -
【shell脚本】逐行处理文本文件
经常会对文体文件进行逐行处理,在Shell里面如何获取每行数据,然后处理该行数据,最后读取下一行数据,循环处理.有多种解决方法如下:1.通过read命令完成.read命令接收标准输入,或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.利用read读取文件时,每次调用read命令都会读取文件中的”一行”文本.当文件没有可读的行时,read命令将以非零状态退出.cat data.转载 2017-08-22 11:44:57 · 907 阅读 · 0 评论 -
linux下用ifconfig命令设置IP、掩码、网关
设置IP和掩码 ifconfig eth0 192.168.1.4 netmask 255.255.255.0 设置网关 route add default gw 192.168.1.1 设置dns原创 2017-03-07 18:32:34 · 42737 阅读 · 0 评论 -
安装openssl-0.9.8报错out range of signed 32bit displacement
一、系统环境 操作系统:centos6.4 x86_64 openssl版本:openssl-0.9.8二、安装过程# tar zxvf openssl-0.9.8.tar.gz# cd openssl-0.9.8# ./config shared zlib# make报错: md5-x86_64.s:41: Error: 0xd76aa478 out range of signed 3转载 2017-06-20 17:13:47 · 2729 阅读 · 1 评论 -
Hyperscan编译
compile2.1 configurecd hyperscanmkdir build-dircd build-dircmake ..install cmakesudo apt-get install cmakeinstall Boost http://www.boost.orgtar --bzip2 -xf /path/to/boost_1_63_0.tar.bz2./bootstrap原创 2017-01-17 18:37:56 · 2674 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
手把手教你把Vim改装成一个IDE编程环境(图文) http://blog.csdn.net/wooin/article/details/1858917转载 2017-11-20 19:32:44 · 181 阅读 · 0 评论 -
linux中批量修改文件名/文件内容(rename sed)
批量修改文件名linux的rename命令比如把所有的表为abc_* 修改为def_*的 在本目录下只需要rename 'abc' 'def' *rename还有更多的功能,建议man rename下批量修改文件内容自己写了个程序,其中命名比较幼稚,有的1,2,之类的比较简单写,但很不规范,开发完后,想统一改下名字,所以看到了下面这篇文章,让洒家受益匪浅:(自己做了一些整理) 方法1 对于一个转载 2017-06-14 10:21:08 · 18484 阅读 · 0 评论 -
gcc -I参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用转载 2016-06-29 10:36:09 · 550 阅读 · 0 评论 -
git简易的命令行入门教程
Git 全局设置:git config --global user.name "wty"git config --global user.email "wty@qq.com"创建 git 仓库:mkdir wtycd wtygit inittouch README.mdgit add README.mdgit commit -m "first commit"git rem原创 2015-12-08 09:23:16 · 400 阅读 · 0 评论 -
Linux进程通信之共享内存-shmget shmat shmdt shmctl
一. 共享内存介绍System V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射shm文件系统中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应shm文件系转载 2017-12-05 19:49:08 · 942 阅读 · 0 评论 -
GDB十分钟教程
https://blog.csdn.net/liigo/article/details/582231/转载 2019-04-11 15:59:52 · 174 阅读 · 0 评论 -
git merge request
如今很多项目都采取merge request方式来进行codereview,所有掌握merge request很有必要,步骤如下:0 checkout到主分支(仅一次)git checkout mastergit pull1 fork本地分支,继承自主分支(仅一次)git checkout -b new2 子或者主分支下修改代码为方便更新最新的主分支代码,推荐主分支下修改代码g...原创 2019-09-23 20:03:46 · 1460 阅读 · 0 评论 -
软件开发windows和ubuntu linux软件
QQvirtualbox winxp qq sudo apt-get install virtualbox浏览器google-chrome http://chrome.google.com屏蔽广告Adblock Plus下载工具firefox下DownThemAll!词典goldendict sudo apt-get install goldendict需要设置词典 进入“编辑”-原创 2015-11-09 15:22:17 · 498 阅读 · 0 评论 -
Boot-Repair
https://help.ubuntu.com/community/Boot-Repair原创 2016-08-31 09:25:44 · 598 阅读 · 0 评论 -
Ubuntu开机出现grub rescue模式修复方法
先使用ls命令,找到Ubuntu的安装在哪个分区: grub rescue> ls会罗列所有的磁盘分区信息,比方说:(hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)然后依次调用如下命令: msdosX表示各个分区,注意msdos与数字之间没有空格! grub rescue> ls (hd0,msdosX)/boot/grub如果都找不到的话,需要原创 2016-08-30 14:00:41 · 2605 阅读 · 0 评论 -
Ubuntu下使用wireshark进行网络抓包
1.安装wireshark终端运行: sudo apt-get install wireshark2.修改init.lua直接运行wireshark的话会报错:Lua: Error during loading: [string “/usr/share/wireshark/init.lua”]:45: dofile has been disabled要对其进行修改,终端运行 sudo g转载 2015-11-16 17:20:10 · 489 阅读 · 0 评论 -
GRUB入门教程
教程提示我应该学习这门教程吗?本教程向您显示如何安装和使用 GRUB (Grand Unified Boot Loader)。就像 LILO 一样,GRUB 允许引导 Linux 系统,它负责装入和引导内核。但与 LILO 不同,GRUB 的功能非常多,更易于使用,更可靠和灵活,而且非常小巧。如果已经有些熟悉 LILO,并了解了磁盘分区的基本知识,那么您就掌握了学习本教程应具备的预备知识。通过学习本转载 2015-11-12 20:35:49 · 470 阅读 · 0 评论 -
linux下printf实现不换行打印(printf显示不加换行的缓冲问题)
在学习调试linux的程序时,发现了一个加换行(\n)会实时显示,不加换行则会卡住最后一起显示的情况。 只要把printf(“1”);改成printf(”1\n”); printf(”2”)改成printf(“2\n”); 1 强制刷新标准输出缓存fflush(stdout); 2 放到缓冲区的内容中包含/n; 3 缓冲区已满; 4 需要从缓冲区拿东西到时候,如执行scanf;例程#in原创 2015-11-25 14:12:25 · 9932 阅读 · 0 评论 -
ubuntu tftp服务器搭建/安装/配置
ubuntu tftp服务器安装1. 安装tftpd(tftp服务器)、tftp(tftp客户端)以及xinetd(超级服务器) #sudo apt-get install tftpd tftp xinetd ubuntu tftp服务器安装2. 创建/etc/xinetd.d/tftp文件,并在文件中添加如下内容 #vim /etc/xinetd.d/tftp转载 2015-09-16 14:27:21 · 457 阅读 · 0 评论 -
Ubuntu Linux内核更新后VirtualBox无法启动的解决办法(Kernel driver not installed (rc=-1908))
VisualBox之所以在Linux上比传统的VMware快得多,关键一点就是它和Linux内核的结合比较紧密,这也是开源的优点。不过Linux内核更新很频繁,每次更新内核后启动VirtualBox都会提示: VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or /de转载 2015-11-12 10:05:45 · 2790 阅读 · 0 评论 -
/bin,/sbin,/usr/bin,/usr/sbin目录之简单区别
这些目录都是存放命令的. 首先区别下/sbin和/bin: 从命令功能来看,/sbin 下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统,/bin下存放一些普通的基本命令,如ls,chmod等,这些命令在Linux系统里的配置文件脚本里经常用到。 从用户权限的角度看,/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理转载 2015-11-19 10:26:36 · 330 阅读 · 0 评论 -
Ubuntu下的抓包工具tcpdump
Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo apt-get install tcpdump即可安装。 (如果遇到tcpdump: no suitable device found的问题,检查一下是不是在用root权限运行tcpdump,tcpdump只能在root权限下工作) 安装好tcpdump之后,运行tcpdump: 1. tcpdump -D 获取网络转载 2015-11-17 11:21:54 · 963 阅读 · 0 评论 -
如何使用git命令同步代码到github或提交到多个远程仓库
1.首先得在github上注册一个帐号,然后新建一个库。 2.在本地目录安装git,然后新建一个文件夹。比如说code吧。 mkdir code cd code git init //初始化,会出现一个.git文件,可以通过ls -aF查看 git config –list //设置user.email等现在我们新建一个文件 echo “hello,world” >h原创 2015-12-07 12:14:39 · 2267 阅读 · 0 评论 -
Linux下制作ubuntu系统的u盘启动版LiveCD和直接硬盘启动LiveCD
插上U盘 sudo fdisk -l cd ubuntu-iso目录下 sudo dd if=ubuntu-14.04.3-desktop-amd64.iso of=/dev/sdbsdb是U盘原创 2015-12-18 09:59:47 · 6066 阅读 · 0 评论 -
Linux makefile教程-详细易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。 于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。 后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解。能让人看懂就转载 2015-09-01 16:13:34 · 3213 阅读 · 0 评论 -
Ubuntu登陆界面循环登陆不进去(已解决)
问题现象描述: Ubuntu 12.0.4重启后,在登陆界面输入密码后,回车,闪现一次黑屏和一些代码,然后又重新回到登陆界面。 问题分析和解决过程: 1.尝试将黑屏中的代码截图分析,但是没能成功,目测大概是Checking Battery State…这样的内容。 2.按Ctrl+Alt+F1进入命令行界面 3.以root身份登陆 4.startx 5.提示错误,代码如下: If *转载 2016-03-20 09:27:22 · 2475 阅读 · 0 评论 -
git clone所有远程分支
git clone只会在本地默认创建一个master分支,只能克隆master分支的代码,无法clone所有分支,如果主分支没代码就只能看到.git目录。如下面的这个: $ git clone git://gitorious.org/android-eeepc/mesa.git发现本地只有一个.git目录,那么就需要checkout。进入你的本地目录, $ cd mesa如果远程还有其他原创 2015-12-04 15:16:29 · 1464 阅读 · 0 评论 -
[Linux] Wireshark 抓到超过(大于) MTU 的封包
在 Linux Wireshark 有時候會抓到比 MTU Size 更大的封包, ex: 2336, 5160 .. etc.這個問題源自於 Linux NIC driver enable GRO (Generic Receive Offload), 這功能會將數個封包組合成一個大封包以增加速度。這時可以用 ethtool 去修改網路卡的參數使用 ethtool -k 查看狀況。 $ eth转载 2015-11-30 16:38:05 · 4069 阅读 · 0 评论 -
Ubuntu安装ssh server(sshd)
1.安装 终端输入以下命令,会有提示 sshd安装命令为 sudo apt-get install openssh-server2.确认openssh-server是否安装好 ps -e | grep ssh自动启动 ( 安装后默认地已经以openssh-daemon在后台运行了。 也可以使用chkconfig来设置自动启动。) sudo vi ~/.bashrc添加原创 2016-04-08 18:40:41 · 446 阅读 · 0 评论 -
修改grub2默认启动顺序
首先我们cd到ubuntu的/boot/grub目录下,该目录下有个文件grub.cfg,就是设置默认启动的文件。 下面是我电脑的grub启动项,Windows系统在第5个,因为它第一个的index是0,所以递推下去第5个所在的index是4 在grub.cfg文件里面找到 set default = “0” 将0改为你电脑windows系统的index(我这里是4) 保存,重启,OK!原创 2016-07-24 10:57:51 · 17985 阅读 · 1 评论 -
Windows 7下硬盘安装Ubuntu 14.04双系统简明教程
本文讲Windows 7下硬盘安装ubuntu 14.04 LTS,尽量简明扼要,其它Windows和Linux版本也类似。准备:Ubuntu 14.04 iso 磁盘分区 EasyBCD开始1.打开EasyBCD;“添加新条目”;“NeoGrub”;点“安装”,“配置”。 2.出现编辑menu.lst文件 把下面的 英文 复制追加进去, title Install Ubuntu 14.原创 2015-11-09 14:19:44 · 636 阅读 · 0 评论