
Linux应用
迷失0
这个作者很懒,什么都没留下…
展开
-
Linux Socket---write/send/sendto/wirev/sendmsg
首先,我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构;在我们的虚拟机上发送icmp回显请求包,ping另一台主机192.168.1.111。我们使用系统调用sendto发送这个icmp包。ssize_t sendto(int s, const void *buf, size_t len, int flags, ...转载 2019-10-18 16:35:06 · 1593 阅读 · 0 评论 -
Linux vsftpd移植笔记
PC_LInux安装vsftpdRed Hat Enterprise默认没有安装vsftpd所以使用镜像文件中的安装包安装挂载镜像:mount /dev/cdrom /media安装vsftpd: rpm -ivh /media/Packages/vsftpd*开启vsftpd服务:service vsftpd start开启启动:chkconfig vsftpd on原创 2015-08-01 20:09:40 · 722 阅读 · 0 评论 -
linux进程信号处理函数signal和sigaction
Linux中signal函数说明:NAME signal - ANSI C signal handlingSYNOPSIS #include typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t原创 2015-08-21 23:18:22 · 4169 阅读 · 0 评论 -
高级套接口-(sendmsg和recvmsg)
sendmsg和recvmsg这两个接口是高级套接口,这两个接口支持一般数据的发送和接收,还支持多缓冲区的报文发送和接收(readv和sendv支持多缓冲区发送和接收),还可以在报文中带辅助数据。这些功能是常用的send、recv等接口无法完成的。接口的声明如下:点击(此处)折叠或打开#include sys/socket.h>ssize_t转载 2015-07-02 14:12:07 · 512 阅读 · 0 评论 -
send或者write socket遭遇SIGPIPE信号
send或者write socket遭遇SIGPIPE信号(转)转自:http://linux.chinaunix.net/techdoc/net/2008/10/10/1037290.shtml当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个转载 2015-07-03 13:25:43 · 615 阅读 · 0 评论 -
Linux网络调试笔记
项目要求:Linux'客户端自动连接PC端服务器;Linux服务器端等待PC端客服接入;调试过程:Linux客户端:使用Socket函数创建网络套接字,然后使用connect函数连接服务器,最后调用connect返回的描述符对网络设备进行读写。笔记:Socket创建的套接字并不是直接用来对网络设备进行读写的,对网络设备进行读写的描述符是connect返回的设备描原创 2015-07-03 18:26:06 · 502 阅读 · 0 评论 -
linux系统头文件
头文件目录中总共有32个.h头文件。其中主目录下有13个,asm子目录中有4个,linux子目录中有10个,sys子目录中有5个。这些头文件各自的功能如下,具体的作用和所包含的信息请参见第14章。:a.out头文件,定义了a.out执行文件格式和一些宏。:常数符号头文件,目前仅定义了i节点中i_mode字段的各标志位。:字符类型头文件,定义了一些有关字符类型判断和转换的宏。:错误号转载 2015-07-04 14:19:12 · 478 阅读 · 0 评论 -
linux下调整进程、线程优先级
linux下调整进程优先级 进程的优先级决定了进程是否优先被cpu分配资源进行处理。在cpu资源十分充足时,每个正在运行的进程都能分配到足够的资源进行处理,此时调整进程的优先级是没有什么意义的;如果cpu资源紧张时,top查看cpu使用达到90%以上时,优先级高的进程将被优先分配资源去执行。 如果此时手头有一个非常紧要的任务要执行,比如传输一个非常重要的数据或是准备给客户发原创 2015-07-09 13:24:29 · 8360 阅读 · 0 评论 -
linux_I2C学习二(裸机)
一、EEPROM简介:EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只 读存储器,是一种类似于flash的固态存储器, 但是与 flash相比又存在一些区别:1.EEPROM 可以按位擦写, 而FLASH只能大片 擦除2.EEPROM 一般容量都不大, 一般都在64Kbit以下二、I2C初始原创 2015-07-09 14:19:47 · 567 阅读 · 0 评论 -
Linux find 用法示例
Linux中find常见用法示例·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: fi转载 2015-07-28 20:08:40 · 306 阅读 · 0 评论 -
Ralink RT3070 AP移植笔记
使用RT3070_SoftAP驱动(好像Rklink公司网站没有了。。。现在网上很难找到)处理器:AT91SAM9G20内核版本:Linux2.6.301.修改驱动包里面三个文件(MODULE、NETIF、UTIL)的Makefile:指定使用平台(PLATFORM = SMDK),修改对应的平台配置(LINUX_SRC = 处理器使用的内核地址,CROSS_COMPILE=编译工原创 2015-07-28 18:57:14 · 2038 阅读 · 0 评论 -
glob函数的使用
glob库函数用于Linux文件系统中路径名称的模式匹配,即查找文件系统中指定模式的路径。注意,这不是正则表达式匹配,虽然有些相似,但还是有点差别。glob函数原型 #include int glob(const char *pattern, int flags, int errfunc(cons转载 2016-12-17 22:37:44 · 7821 阅读 · 1 评论 -
Linux 硬中断和软中断
概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。 (1) 硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操转载 2015-10-11 10:53:43 · 6604 阅读 · 0 评论 -
socket函数
socket()我们使用系统调用socket()来获得文件描述符:#include#includeint socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型:SOCK_STREAM或SOCK_DGRAM。第三个参数设置为0。系统调用socket()只返回一个套转载 2015-06-26 16:42:45 · 463 阅读 · 0 评论 -
Linux-3.0.35 I2C使用说明
系统:Linux-3.0.35硬件:飞思卡尔-imx6系统说明文档:Usually, i2c devices are controlled by a kernel driver. But it is alsopossible to access all devices on an adapter from userspace, throughthe /dev interface原创 2015-10-06 22:46:32 · 1033 阅读 · 0 评论 -
Linux Socket编程(不限Linux)
socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?3、socket的基本操作3.1、socket()函数3.2、bind()函数3.3、listen()、connect()函数3.4、accept()函数3.5、read()、write()函数等3.6转载 2015-07-02 13:56:09 · 360 阅读 · 0 评论 -
Ralink RT3070 AP--UDHCPD移植笔记
内核:Linux2.6.30处理器:AT91SAM9G201、在内核中添加以下选项:Networking --->[*] Networking support Networking options ---> Packet socket //添加.配置CONFIG_PACKET[*] IP: DHCP support原创 2015-07-30 12:56:41 · 1601 阅读 · 0 评论 -
ARM—使用FTP服务访问PC—FTP服务器笔记
需要ARM访问上位机FTP服务器下载文件或者上传文件的时候就需要ARM支持FTP服务功能。1、编译ARM的文件系统时需要在busbox中选上ftpget、ftpput选项2、ARM系统启动后输入ftpget命令提示如下:提示需要填写指令,实际操作中PC端搭建的FTP服务器使用的匿名登录,所以可以不加-u、-P(大写)指定登录用户名和密码,但需要加上-p(小写)指定ftp原创 2015-08-01 20:04:23 · 2481 阅读 · 0 评论 -
关于SIGPIPE导致的程序退出
关于SIGPIPE导致的程序退出收集一些网上的资料,以便参考:http://blog.chinaunix.net/u2/69143/showart_1087349.html 当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断转载 2015-07-03 18:47:55 · 402 阅读 · 0 评论 -
Linux杀死进程的方法
查看进程状态:命令:ps -ef;ps -aux;ps -ef | grep (进程名):只查看指定进程名进程的状态pgrep (进程名):查看指定进程名进程状态pkill -9 (进程名):杀死指定进程名进程kill -s 9 (进程号):-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。killall -9 (进程名):杀死指定进程名进程。原创 2015-07-03 19:06:19 · 719 阅读 · 0 评论 -
linux grep用法大全
原文:http://orchidllh.itpub.net/post/4020/24280在Unix中经常会用到grep去选取所需要的信息,用好grep有时可以到达意想不到的效果。 Grep : g (globally) search for a re (regular expression_r_r ) and p (print ) the results.1、参转载 2015-07-28 15:04:08 · 416 阅读 · 0 评论 -
select()函数详解
网络编程中一个很重要的函数,没有整理,直接转过来,讲的还是蛮详细的。转自:http://blog.youkuaiyun.com/zhw888888/archive/2009/03/29/4034515.aspx Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或转载 2015-06-26 16:43:20 · 554 阅读 · 0 评论 -
Linux应用编程:fork与vfork的区别
fork()与 vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别:1.fork():子进程拷贝父进程的数据段,堆栈段 vfork():子进程与父进程共享数据段2.fork()父子进程的执行次序不确定vfork 保证子进程先运行,在调用 exec 或 exit 之前与父进程数据是共享的,在它调用 exec或 exit 之后父进程才可能被调度转载 2015-06-27 11:05:30 · 394 阅读 · 0 评论 -
Linux copy_to_user、copy_from_user使用
copy_from_user函数原型:static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n){ if (access_ok(VERIFY_READ, from, n)) n = __arch_copy_from_user(to, from,原创 2015-06-26 20:30:59 · 6139 阅读 · 0 评论 -
socket select函数的详细讲解
原型int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const struct timeval* timeout);nfds:本参数忽略,仅起到兼容作用。 readfds:(可选)指针,指向一组等待可读性检查的套接口。 writefds:(可选)指针,转载 2015-06-26 16:44:42 · 1550 阅读 · 0 评论 -
setsockopt()函数
在TCP连接中,recv等函数默认为阻塞模式(block),即直到有数据到来之前函数不会返回,而我们有时则需要一种超时机制使其在一定时间后返回而不管是否有数据到来,这里我们就会用到setsockopt()函数: int setsockopt(int s, int level, int optname, void* optval, socklen_t* optlen); 这里原创 2015-06-26 16:40:57 · 671 阅读 · 0 评论 -
linux压缩与解压缩 tar命令
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到转载 2015-06-27 10:55:06 · 312 阅读 · 0 评论 -
linux FIFO
进程间通信使用_FIFO在阻塞模式下,只有当读和写模式都打开时才返回,否则一直阻塞;非阻塞模式下,当读端没打开,则打开写端无效,返回错误。FIFO一端只能是读或者只能是写O_RDONLY、O_WRONLYO_NONBLOCK 为阻塞模式原创 2015-06-26 16:45:26 · 569 阅读 · 0 评论 -
Linux system函数返回值
status = system("./test.sh"); 先统一两个说法:(1)system返回值:指调用system函数后的返回值,比如上例中status为system返回值(2)shell返回值:指system所调用的shell命令的返回值,比如上例中,test.sh中返回的值为shell返回值。2、如何正确判断test.sh是否正确执行?仅判断status是否转载 2015-06-26 16:38:14 · 468 阅读 · 0 评论 -
Linux sem信号量使用
semget 函数为获取信号量函数使用格式:int semget(key_t _key ,int _nsems,int _semflg);功能:创建一个新的信号量或获取一个已经存在的信号量的键值。返回值:成功返回信号量的标识码ID。失败返回-1;参数:_key 为整型值,用户可以自己设定。有两种情况:1. 键值是IPC_P原创 2015-06-27 10:51:06 · 2260 阅读 · 0 评论 -
linux系统日志函数syslog,openlog,closelog函数
三个函数openlog, syslog, closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。 原理:通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf(注释:if you want to redirect log to other place,y转载 2015-06-26 16:39:34 · 1838 阅读 · 0 评论 -
数据库(sqlite)
一、数据库基本概念A.数据(Data)能够输入计算机并能被计算机程序识别和处理的信息集合。B.数据库(Database)数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。注意:数据库管理系统(DataBase Mangement System) --DBMMSC转载 2015-07-06 19:31:23 · 437 阅读 · 0 评论 -
Linux守护进程设计
什么是守护进程:守护进程,也就是通常说的Daemon(精灵)进程,是Linux中的一种服务进程。守护进程的特点:1.不能占用控制终端(守护进程都是后台运行) (启动一般进程时后面加上(&),此程序就会以守护进程方式运行。)示例:(./test &)2.独立于控制终端(不对于任何控制终端)3.周期性运行(移植间歇性运行)例如:smbd(查看进程运行状态命令:ps aux,‘?原创 2015-06-28 16:53:05 · 556 阅读 · 0 评论 -
linux交叉工具链总结
安装linux交叉工具链步奏: 1.解压linux交叉工具链 2.修改环境变量 vi /etc/profile 3.更新环境变量 source /etc/profile 交叉工具链不能混合使用,在宿主机和开发板里面要用同一套交叉工具链才不会报错。原创 2015-06-27 11:10:19 · 473 阅读 · 0 评论 -
Linux gcc参数说明
记录常用的gcc参数说明:-g 生成调试信息-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。-lLIBRARY 连接时搜索指定的函数库LIBRARY。-o FILE 生成指定的输出文件。用在生成可执行文件时。-O0 不进行优化处理。-O 或 -O1 优化生成代码。-O2 进一转载 2015-06-27 11:01:56 · 419 阅读 · 0 评论 -
LINUX mount 用法
挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 命令格式: mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型转载 2015-06-27 10:59:15 · 315 阅读 · 0 评论 -
C语言指针用法笔记
C语言运用指针时事先申明指针占用内存大小比较安全,使用函数malloc分配,用完后需要使用free释放指针变量;如果不分配容易出现段错误或者在使用strcpy函数幅值时出现不确定错误。原创 2015-06-27 10:58:01 · 354 阅读 · 0 评论 -
常见gcc编译警告
1、warning: no newline at end of file在文件最后一行加上回车键解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:A backslash immediately before a newline has long been used to continue string literals, as转载 2015-06-27 10:56:53 · 658 阅读 · 0 评论 -
Linux系统库函数 -- lseek函数用法
所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo。cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数。文件被打开时,cfo 会被初始化为 0,除非使用了 O_APPEND 。 使用 lseek 函数可以改变文件的 cfo 。原创 2015-06-27 11:09:32 · 630 阅读 · 0 评论