LINUX技术
文章平均质量分 55
一一风浪
这个作者很懒,什么都没留下…
展开
-
解决Ubuntu linux下git命令无法自动补齐问题
linux下git命令无法自动补齐问题原创 2022-09-08 14:50:12 · 1864 阅读 · 0 评论 -
linux的同步,异步,阻塞,非阻塞
linux中关于IO操作有同步,异步,阻塞,非阻塞几种模式,这几种模式可能有些同学会有点迷糊,把同步和阻塞混为一起,把异步和非阻塞混一起.其实这四种模式的关系是:阻塞和非阻塞都属于同步.1. 基础知识 我们都知道linux将所有的设备都看作文件,那么我们对linux的设备操作都可以看做是文件操作.我们打开一个文件的时候内核会返回给我们一个文件描述符,那么我们对文件的操作都是文件描述符来...转载 2018-11-21 13:50:26 · 160 阅读 · 0 评论 -
OSI七层与TCP/IP五层网络架构详解
1. IP 网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。 IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主...转载 2018-07-11 11:20:44 · 461 阅读 · 0 评论 -
Linux中shell文件操作大全
1.创建文件夹#!/bin/shmkdir -m 777 "%%1"2.创建文件#!/bin/shtouch "%%1"3.删除文件#!/bin/shrm -if "%%1"4.删除文件夹#!/bin/shrm -rf "%%1"5.删除一个目录下所有的文件夹#!/bin/bashdirec="%%1" #$(pwd)for dir2del in $direc/* ; doif [ -d $dir...转载 2018-06-08 11:20:53 · 1083 阅读 · 0 评论 -
Linux中将c文件编译成可执行文件的方法
c文件:project.c方法一//预编译,生成已编译通过的C原始程序 *.i gcc -E project.c -o project.i//编译,生成汇编语言原始程序 *.s gcc -S project.i -o project.s//链接,生成可执行程序 gcc -o project.exe project.s方法二//编译 gcc -c project.c -o project.o//链接转载 2018-01-19 14:26:53 · 2257 阅读 · 0 评论 -
setsockopt()用法(参数详细说明)
int setsockopt(SOCKET s,int level,int optname,const char* optval,int optlen);s(套接字): 指向一个打开的套接口描述字level:(级别): 指定选项代码的类型。SOL_SOCKET: 基本套接口IPPROTO_IP: IPv4套接口IPPROTO_IPV6: IPv6套接原创 2017-08-04 14:53:42 · 236 阅读 · 0 评论 -
linux下的定时或计时操作(gettimeofday等的用法,秒,微妙,纳秒
一、用select()函数实现非阻塞时的等待时间,用到结构体struct timeval {},这里就不多说了。二、用gettimeofday()可获得微妙级(0.000001秒)的系统时间,调用两次gettimeofday(),前后做减法,从而达到定时或者计算时间的目的。原型:int gettimeofday(struct timeval *tv,struct timezon原创 2017-08-04 14:52:17 · 1396 阅读 · 0 评论 -
Linux平台延时之sleep、usleep、nanosleep、select比较
Linux平台延时之sleep、usleep、nanosleep、select比较 1、sleep的精度是秒2、usleep的精度是微妙,不精确3、select的精度是微妙,精确struct timevaldelay;delay.tv_sec =0;delay.tv_usec =20 * 1000; // 20 msselect(0,原创 2017-08-04 14:48:30 · 16356 阅读 · 0 评论 -
Linux 下的dd命令使用详解(摘录)
一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。3. ibs=转载 2017-07-23 18:45:06 · 363 阅读 · 0 评论 -
对于linux下system()函数的深度理解
这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,或是内核驱动文件系统什么的异常导致,昨天有出现了这个问题,就随手百了一下度,问题出现了,很多人都说system()函数要慎用要少用要能不用则不用,system()函数不稳定?转载 2017-07-23 18:42:48 · 396 阅读 · 0 评论 -
Linux程序崩溃调试手段--core使用(续)
core dump又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中,叫core dump. (linux中如果内存越界会收到SIGSEGV信号,然后就会core dump) 在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、t原创 2017-07-05 13:34:31 · 4534 阅读 · 0 评论 -
Linux程序崩溃core使用(续)
Linux查看调用堆栈的信息,只是需要更改Linux设置,使程序崩溃时候产生core文件。然后gdb调试即可。原创 2017-07-05 09:17:52 · 329 阅读 · 0 评论 -
深入理解C语言的函数调用过程
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。 先看一个最简单的程序:点击(此处)折叠或打开/*test.c*/#include stdio.h>int foo1(int m,int n,int p){ int x = m + n + p; return x转载 2017-07-04 16:18:21 · 2991 阅读 · 0 评论 -
Linux下objdump使用方法
Linux下objdump命令常见用法举例:objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出;objdump -t obj:输出目标文件的符号表()objdump -h obj:输出目标文件的所有段概括()objdump -j ./text/.data -S obj:输出指定段的信息(反汇编源代码)objdump -S obj:输出转载 2017-07-04 10:31:58 · 1575 阅读 · 0 评论 -
Linux如何查看进程、杀死进程、启动进程等常用命令
1.查进程 ps命令查找与进程相关的PID号: ps a 显示现行终端机下的所有程序,包括其他用户的程序。 ps -A 显示所有程序。 ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 ps -e 此参数的效果和指定"A"参数相同。 ps e 列出程序时,显示每个程序所使用的环境变量。 ps转载 2017-07-04 10:27:15 · 353 阅读 · 0 评论 -
Linux通过PID查看进程完整信息
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。先通过top查看进程PID这时,我们需要通过以下的方法来查看进程的详细信息:Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。转载 2017-07-04 10:25:11 · 4861 阅读 · 0 评论 -
linux调试----addr2line将(转换为地址及所在的文件及行数)
Addr2line 工具(它是标准的 GNU Binutils 中的一部分)是一个可以将指令的地址和可执行映像转换成文件名、函数名和源代码行数的工具。这种功能对于将跟踪地址转换成更有意义的内容来说简直是太棒了。要了解这个过程是怎样工作的,我们可以试验一个简单的交互式的例子。这个示例 C 文件(main.c)是通过 cat 一个简单的应用程序实现的(也就是说,将标准输出的文本重定向到一个文件中)原创 2017-07-03 13:33:50 · 5196 阅读 · 0 评论 -
linux调试----addr2line
我们在linux下开发程序时,经常遇到Segmentation fault的错误信息,如果代码比较少还可以去一行行排除,但是代码量比较大的时候,往往是一件头疼的事情。Segmentation fault会有地址抛出,我们可以利用addr2line定位到程序出错的行,这样是不是很方便的排查问题。下面就简单的介绍一下addr2line的使用方法。1)编写测试代码故意产生Segmentation f原创 2017-07-03 13:24:54 · 1090 阅读 · 0 评论 -
Linux生成core使用
在Linux下产生并调试core文件 先看看我用的是个什么机器:[root@localhost work]# uname -aLinux localhost.localdomain 2.6.32-279.el6.i686 #1 SMP Wed Jun 13 18:23:32 EDT 2012 i686 i686 i386 GNU/Linux 再看看默认的一些参数,注意core fi原创 2017-07-03 13:18:07 · 916 阅读 · 0 评论