linux
wsclinux
这个作者很懒,什么都没留下…
展开
-
linux内核模块心得20150326
1、内核经常要考虑多进程并发,多个内核进程会同时访问你写的驱动程序,所以驱动程序要严格考虑代码的可重入性,千万别想当然一个内核进程在没有挂起或者休眠状态的时候他占用的资源不会被别的内核进程所使用。也就是说,驱动的编程要考虑多进程并发的工作模式,所编写的驱动程序要考虑可重入性。2、内核程序的栈空间是很小的差不多4kB,所以驱动程序的自动变量要少定义,如果有较大的动态空间需要使用需要使用内核特有的原创 2015-03-27 00:25:46 · 656 阅读 · 0 评论 -
linux wifi设置和相关介绍
Wi-Fi?WirelessFidelity,无线保真 技术与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。该技术使用的使 2.4GHz附近的频段,该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个,分别是IEEE802.11a和IEEE802.11b。该技术 由于有着自身的优点,因此受到厂商的青睐。 Wi-Fi技术突出的优势在于: 其一,无线电波的覆盖范转载 2015-03-25 12:01:23 · 1090 阅读 · 0 评论 -
linux shell脚本编程笔记_20150419
1,开头#/bin/bash 2,注释用#号3,变量:局域变量和全局变量局域变量定义是在shall脚本中定义,如:var=hello ,注意等号两端不需要空格。引用,如$var全局的shell变量就是环境变量,直接引用如:$0,$1,$*, $?,$#,$UID,$$0:第一个参数$1:第二个参数$*:列出所有的输入参数$?:上一条shell命令执行是否正确了。原创 2015-04-19 14:24:01 · 403 阅读 · 0 评论 -
find ----linux文件查找
find . -maxdepth 1 -name "@*" 这个命令意思是,查找当前目录下以@开头的文件或者目录,搜索深度为一级也就是只在当前目录找,不进入子目录,如果你要从/目录开始找就:find / -maxdepth 1 -name "@*" 如果想搜全盘,就把-maxdepth 1 去掉转载 2015-05-27 16:07:19 · 376 阅读 · 0 评论 -
*.ko驱动模块的动态加载,*.ipk应用层模块的动态加载,配置文件的拷贝
在linux内核启动时动态加载*.ko驱动模块需要完成一下两个步骤1、make menuconfig配置界面中,对应的选项打*号,编译到内核。2、再对应源码包中的makefile中完成*.ko包的拷贝工作,拷贝到要安放的路径(嵌入式中的路径)3、再rc.local中命令加载,insmod /lib/modules/$(uname -r)/*.ko ,其中 /lib/modules/路径原创 2015-05-28 00:09:38 · 1376 阅读 · 0 评论 -
内核错误代码汇总
linux/errno.h#ifndef _LINUX_ERRNO_H#define _LINUX_ERRNO_H#include #ifdef __KERNEL__/* Should never be seen by user programs */#define ERESTARTSYS 512#define ERESTARTNOINTR转载 2015-05-21 16:05:25 · 953 阅读 · 0 评论 -
linux 中找文本
1.使用find和xargs命令 复制代码代码如下:find dir | xargs grep str # dir是指某个目录 find file | xargs grep str # file是指某个文件2. 第2种方法是直接使用grep命令 复制代码代码如下:grep str dir/* # dir是指某个目录,但不递转载 2015-05-28 10:36:14 · 358 阅读 · 0 评论 -
long int strtol(const char *nptr,char **endptr,int base)
long int strtol(const char *nptr,char **endptr,int base);这个函数会将参数nptr字符串根据参数base来转换成长整型数。 参数base范围从2至36,或0。参数base代表采用的进制方式, 如base值为10则采用10进制,若base值为16则采用16进制等。 当base值为0时则是采用10进制做转换,但遇到转载 2015-06-16 11:47:48 · 1167 阅读 · 0 评论 -
char * fgets(char * s, int n,FILE *stream);
来说一说fgets(..)函数。 原型 char * fgets(char * s, int n,FILE *stream); 参数: s: 字符型指针,指向存储读入数据的缓冲区的地址。 n: 从流中读入n-1个字符 stream : 指向读取的流。 返回值:转载 2015-05-29 09:50:52 · 1178 阅读 · 0 评论 -
linux系统平台开发基本流程
1. 创建 Linux 交叉编译环境2. 建立 Bootloader,启动之后硬件相关的初始化代码3. 移植 Linux 内核4. 建立 Rootfs (根文件系统)5. 安装驱动程序6. 安装软件7. 调试转载 2015-06-11 09:41:46 · 682 阅读 · 0 评论 -
char *strdup(char *str)
函数名: strdup功 能: 将串拷贝到新建的位置处用 法: char *strdup(char *str); 这个函数在linux的man手册里解释为:The strdup() function returns a pointer toa new string which is aduplicate of the string s. Memo转载 2015-06-15 16:30:40 · 1364 阅读 · 0 评论 -
文件属性的三个时间代表的意思
modification time (mtime):当该档案的『内容数据』变更时,就会更新这个时间! 内容数据指的是档案的内容,而不是档案的属性喔!status time (ctime):当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说, 像是权限与属性被更改了,都会更新这个时间啊~access time (atime):当『该档案的内转载 2015-08-09 20:14:05 · 1144 阅读 · 0 评论 -
apt-get update 和apt-get upgrade的区别
updateupdate 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。upgradeupgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能是最新的。An updat转载 2015-08-09 18:14:11 · 705 阅读 · 0 评论 -
查看linux中shell的几种方法汇总
http://hi.baidu.com/mengfeiecit/blog/item/51770f3225349ef01a4cfff5.html 查看当前发行版可以使用的shell[jack@localhost ~]$ cat /etc/shells /bin/sh/bin/bash/sbin/nologin查看当前使用的shell一、最常用的查看shel转载 2015-08-24 09:08:40 · 476 阅读 · 0 评论 -
int getpid(void)
getpid getpid(取得进程识别码) 相关函数: fork,kill,getpid 表头文件: #include 定义函数: pid_t getpid(void); 函数说明: getpid()用来取得目前进程的进程识别码,许多程序利用取到的 此值来建立临时文件,以避免临时文件相同带来的问题。 返回值: 目前进程的进程识别码 范例:转载 2015-08-10 15:11:05 · 715 阅读 · 1 评论 -
popen()
标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行。这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程。popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数。下在给出popen、pclose的定义:?转载 2015-08-10 15:55:11 · 517 阅读 · 0 评论 -
struct timeval
问题如下:在debian linux的man页中对gettimeofday函数的说明中,有这样一个说明:DESCRIPTION The functions gettimeofday and settimeofday can get and set the time as well as a timezone. The tv argument is a timeval转载 2015-08-12 14:49:16 · 397 阅读 · 0 评论 -
strerror
函数名: strerror 功 能: 返回指向错误信息字符串的指针,将一个错误代号转换成相应的错误信息字符串,以方便打印用 法: char *strerror(int errnum); 程序例: #include #include int main(void) { char *buffer; buffer = strerror(e转载 2015-08-12 14:38:50 · 448 阅读 · 0 评论 -
nvram_safe_get
get the configureation of luci configure webchar * nvram_safe_get(char * pcField);(1)、return the configure info string原创 2015-08-10 16:03:09 · 1361 阅读 · 0 评论 -
luci工作过程,总结的更好
1. 多语言1)检查:opkg list | grep luci-i18n-2)安装语言包:opkg install luci-i18n-hungarian 2.uhttpd这个是LuCI所在的Web Server。docroot在/www下边,index-html指向了/cgi-bin/luci,注意这是相对于docroot而言的路径。open转载 2015-08-27 01:22:52 · 1043 阅读 · 0 评论 -
select()
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2015-08-12 11:48:45 · 342 阅读 · 0 评论 -
linux和openwrt下更新源
1、为什么要更新源? ubuntu在做发行版本的时候并不是测试所有的免费软件,所以在它的更新源里没不是包括所有的软件链接,假如你想要获得新立得里没有默认包含的软件,你就得自己动手更新软件源。另一种情况就是ubuntu对一些已经包含的软件有一个定期更新过程,所以也需要更表软件源!2、linux如何更新源?打开/etc/apt/source-list,将一下的内容选择一部分添加转载 2015-08-27 00:20:59 · 2290 阅读 · 0 评论 -
shell中的分号(;)
原帖地址:http://hi.baidu.com/lozard/item/6bf9de1b2e704ef1756a84e3首先先看几种写法,这里用if语句作为例子。第一种1: test(){2: if [ 1 -eq 1 ]; then3: echo "1=1"4: else5: echo "1!=1"6: fi7: }第二种转载 2015-09-02 15:39:55 · 9407 阅读 · 0 评论 -
linux各种sig汇总
SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件转载 2015-09-02 15:16:23 · 830 阅读 · 0 评论 -
<<EOF
(内容) EOF 可以把EOF替换成其他东西 意思是把内容当作标准输入传给程序这里再简要回顾一下符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个 分界符可以是你所定义的任何字符串。常用文件重定向:command > filename 把标准输出重定向到一个新文件中 command >> filename转载 2015-09-02 16:35:52 · 1648 阅读 · 0 评论 -
killall
NAME killall - kill processes by name 使用名字杀死进程 SYNOPSIS killall [-Z,--context pattern] [-e,--exact] [-g,--process-group] [-i,--interactive] [-q,--quiet] [-r,--regexp] [-s,-转载 2015-09-02 15:31:42 · 484 阅读 · 0 评论 -
shell 脚本中 1>、2>、2>&1 的作用
举例:sh /tmp/aa.sh >/dev/null 2>&1解释:>和>>都是重定向输出1> 指标准信息输出路径(也就是默认的输出方式)2> 指错误信息输出路径2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)习惯上标准输入(standard input)的文件描述符是 0标准输出(standard out翻译 2015-09-02 15:34:21 · 4177 阅读 · 0 评论 -
shell中&&和||的使用方法
command1 && command2 &&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功&&那么执行这个命令”。 语法格式如下: command1 && command2 [&& command3 ...] 1 命令之间使用 && 连接,实现逻辑与的功转载 2015-09-02 16:25:57 · 527 阅读 · 0 评论 -
echo -ne
echo [-ne][字符串]或 echo [--help][--version] 补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。 参 数:-n 不要在最后自动换行 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般 文字输出: \a 发出警告声;转载 2015-09-02 16:51:28 · 10344 阅读 · 0 评论 -
ubantu不能上网的几个检查步骤
1、查看ip是否设置:运行ifconfig查看设置ip的方法:sudo ifconfig eth0 10.0.11.1052、查看dns是否正确:查看 /etc/resolve.conf,一般设置为servername 8.8.8.8servername 8.8.4.43、查看网关是否正确:运行route -n一般设置:sudo route add default ga原创 2015-09-08 23:54:41 · 948 阅读 · 0 评论 -
ubantu查看gateway的方法
1.cat /etc/resolv.conf (看DNS)2.netstat –r3.cat /etc/sysconfig/network(Ubuntu10.04不行)4.cat /etc/sysconfig/network-scripts/ifcfg-eth0(Ubuntu10.04不行)5.traceroute 第一行就是自己的网关6.ip route转载 2015-09-08 22:57:11 · 6847 阅读 · 0 评论 -
openlog、syslog和closelog函数
openlog、syslog和closelog函数分类: c/c+程序设计2013-03-30 22:42 2440人阅读 评论(0) 收藏 举报守护进程日志的实现syslogd守护进程用于解决守护进程的日志记录问题,而日志信息保存的位置和记录的信息级别是在syslogd守护进程的配置文件中设定的。守护进程日志主要涉及3个函数,分别是openlog、syslog转载 2015-09-09 10:24:46 · 3398 阅读 · 0 评论 -
linux端口占用情况查看
今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。使用命令:ps -aux | grep tomcat发现并没有8080端口的Tomcat进程。使用命令:netstat –apn查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name 发现8080端口被PID为9658的Java进转载 2015-09-25 17:19:31 · 413 阅读 · 0 评论 -
tcpdump
理解IP和端口IP地址是一个规定,现在使用的是IPv4,既由4个0-255之间的数字组成,在计算机内部存储时只需要4个字节即可。在计算机中,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址,如果一个计算机有多个网卡,则该台计算机则拥有多个不同的IP地址,在同一个网络内部,IP地址不能相同。IP地址的概念类似于电话号码、身份证这样的概念。由于IP地址不方便记忆,所以有专门创造了域名(Do转载 2015-09-25 18:58:37 · 614 阅读 · 0 评论 -
atexit()
atexit用于注册进程推出的回调函数,以处理结束进程前的一些工作。linux之atexit函数【linux之atexit函数】 1、什么是atexit函数? 2、流程图 3、后注册的函数会被插入到前排,从而被先调用。转载 2015-09-11 16:23:21 · 315 阅读 · 0 评论 -
time, localtime
1、函数名: time 头文件:time.h 函数原型:time_t time(time_t * timer) 功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用lo转载 2015-09-11 17:08:16 · 999 阅读 · 0 评论 -
dirname,basename
一、dirname指令1、功能:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)2、用法:dirname filename例如下面几个例子(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0/etc/sysconfig/network-scripts(2)# dirname /转载 2015-09-11 16:13:03 · 344 阅读 · 0 评论 -
umask
umask函数为进程设置文件模式创建屏蔽字,并返回以前的值。函数原型为:#include mode_t umask(mode_t cmask);cmask是由下表列出的9个常量中的若干个按位“或”构成的S_IRUSR 用户读S_IWUSR 用户写S_IXUSR 用户执行S_IRGRP转载 2015-09-11 15:42:51 · 388 阅读 · 0 评论 -
access()
Linux access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作。Linux access函数用法: #include #include int access(const char *pathname, int mode);Linux access函数参数: pathname: 需要测试的文件路径名。 mode: 需要测试的操作模式,可能值是一个或多转载 2015-09-11 15:54:49 · 714 阅读 · 0 评论 -
git恢复修改的文件
恢复到最后一次提交的改动:git checkout -- + 需要恢复的文件名但是,需要注意的是,如果该文件已经 add 到暂存队列中,上面的命令就不灵光喽需要先让这个文件取消暂存:git reset HEAD -- + 需要取消暂存的文件名然后再使用第一条命令。如果感觉命令多了记不住,那就做一两个匿名呗,比如:git config转载 2015-09-16 17:49:03 · 426 阅读 · 0 评论