Linux_SHELL下运行脚本 2017年02月05日 19 阅读 Linux Shell的执行流程如下: 1,vi abc.sh //就是用vi来写你的脚本。 2,保存后,在shell下,输入chmod 711 prog_name,回车。 3,运行,在shell下,输入abc.sh,如果不行,输入./abc.sh。 4,观察结果。...
Linux下C程序操作大文件的设置 2017年02月05日 19 阅读 通常在Linux下的C程序只能操作4G以下的文件,因为文件指针是32位的。如果试图读写超过4G的文件,程序会出错中止,显示... Exceed ...。这问题可以以下两种方法解决:对程序进行设置 #define _FILE_OFFSET_BITS 64 添加编译选项 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64...
Linux内核模块编程helloworld小程序问题解决方法 2017年02月05日 19 阅读 首先声明下,对Linux也是刚入门。没系统的学习过Linux。首先附上能编译通过的hello world程序。//#ifndef __KERNEL__//#define __KERNEL__//#endif //见别人的程序里出现过 注释掉也能通过。#ifndef MODULE#define MODULE#endif#include <Linux/module.h>MODULE_LICENSE("GPL");int init_module(vo...
Linux下paste命令 2017年02月05日 19 阅读 cut用来从文本文件或标准输出中抽取数据列或者域,然后再用paste可以将这些数据粘贴起来形成相关文件。粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste将按行将不同文件行信息放在一行。缺省情况下, paste连接时,用空格或tab键分隔新行中不同文本,除非指定-d选项,它将成为域分隔符。Linux下paste格式为:paste -d -s -file1 file2选项含义如下:-d 指定不同于空格或tab键的域分隔符。例如用@分...
Ubuntu Linux下C编译错误解决实例 2017年02月05日 19 阅读 刚安装的Linux,Ubuntu版本。写了一个C程序,使用gcc编译,出现以下错误:test.c:1:18: error: stdio.h: No such file or directory原因:Ubuntu版本的Linux很小,有很多包还没有被安装,需要安装一些文件包,才能够编译C程序。解决:在终端输入:sudo apt-get install libc6-dev系统会自动下载并安装一个文件包,自动安装之后,c程序就可以编译通过了.生成的可执行文件a....
Ubuntu下向系统日志写记录 2017年02月05日 21 阅读 想让Linux系统日志记下你的程序做了什么事吗?哈哈,用下面的程序吧,他能帮你把你要记录的东西通通写到/var/log/syslog中,不信试试看。环境:Ubuntu系统#include <stdio.h>//注意此程序运行不了时,要重新启动syslog进程:/etc/init.d/sysklogd restart#include <time.h>#include <syslog.h>#include <sys/s...
编程技巧分享 2017年02月05日 20 阅读 毕业在公司上班也有两年多了,从新手到现在,在开发中用了很多的技巧。一直都没整理过,今日就好好总结下:一.智能指针的使用c++使用new分配的内存,不会在使用结束后自动释放,需要使用delete删除。在一些逻辑复杂的代码段里面,分配了内存,但是很容易在退出时释放内存。在这样的情况下可以使用智能指针,它可以保证变量在退出作用域时释放内存。以下的代码段在推出作用域后mem所指向的内存块将会自动释放。{ char* mem = new char[32] ; ::s...
Linux内核学习之分段机制 2017年02月05日 20 阅读 X86分段机制 这里讲的分段指的保护模式(protected mode)下的段机制。与保护模式相对的一个概念是实模式(real mode),实模式的地址由“段基址:偏移量”组成,段基址是个16位的寄存器(CS,DS等),这样显然限制了系统的寻址空间。保护模式的地址由“段选择子+偏移量组成”,段选择子(Segment Selector)仍然由16位寄存器(CS,DS等)指定,但是其意义也不再是段基址,而是指定了一个下标,用于从描述符表(X86把所有的段信息都...
Linux内核学习之内存地址 2017年02月05日 21 阅读 在X86的Linux内核中共有三种地址:逻辑地址、线性地址和物理地址。逻辑地址,也就是常说的机器地址,用于在机器指令中指定操作数或者指令的地址,它由段(segment)地址和偏移(offet,or displacement)组成。线性地址,也就是著名的虚拟地址,在32位体系结构中它就是一个32位的数字,指定了在虚拟空间的位置。物理地址,它对应于物理意义上的内存所使用的地址,通常也是一个32位或者64位的数字。从逻辑地址到线性地址的转换是由分段单元(Segm...
Linux内核学习之分页机制 2017年02月05日 20 阅读 什么叫“页”Linux内核分页实际上是对内存的一种分层分组的管理。分页机制在内存中建立页目录、页表这样的多级结构,这就是典型的分层管理。另一方面,一个页表中每个页表项都对应着一个物理页,也就说,一个页表管理着一组连续的虚拟地址的映射情况,这就是分组机制。地址映射过程相信这张经典的图就足以解释了。简单分析一下,在常见的二级页表映射过程中,页目录通过高31-22位索引,这里共10位,也就是1K个,而每个页目录项(PDE)的大小为4字节,总共大小就是1K*4B=...
Linux驱动开发之input子系统 2017年02月05日 19 阅读 本文对mousedev、Amimouse和input子系统进行分析,旨在提纲挈领,给出它们之间的调用关系(或者说关联)。阅读本文,需要与阅读Linux 2.6内核源码交叉进行,除非你是超人。背景:Amimouse,是指Amiga计算机的鼠标。“Amiga计算机为高分辨率,快速的图形响应,多媒体任务,特别是游戏方面做了专门设计。处理器是摩托罗拉的680x0系列处理器。是第一代具有真彩显示的计算机之一。自带Amiga操作系统。1985年在Commodore B...
Linux网络编程一步一步学-IPv6下网络编程步骤 2017年02月05日 23 阅读 大家都知道,随着互联网上主机数量的增多,现有的32位IP地址已经不够用了,所以推出了下一代IP地址IPv6,写网络程序的要稍微改变一下现有的网络程序适应IPv6网络是相当容易的事。对于我们来说就是IP地址变化了,所以程序里在用到IP地址的地方做相应的改变就可以了。记住:主要是改变程序里设置IP地址和端口等部分的代码。服务器端源代码如下:复制内容到剪贴板代码:#include <stdio.h>#include <stdlib.h>#...
Java基础:Java初学者必须了解的基础问题 2017年02月05日 20 阅读 对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。 问题一:我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。 这个语句...
Linux下while循环中数组赋值的方法 2017年02月05日 19 阅读 i=0cat $ALLGROUPFILE_PATH | while read linedoALL_GROUP[i]=$linelet i=i+1doneecho ${#ALLREGION[@]}最后一句的echo ${#ALLREGION[@]}为什么打印出的数组长度是空呢?怎样才能在Linux下while循环的外面得到这个数组的长度呢?解决方案: 用重定向而不是管道,举例:-(dearvoid@LinuxEden:Forum)-(~/tmp)-[3104...
C++异步编程方式 2017年02月05日 24 阅读 “Boost是一个极致漂亮的设计”——这是我在这一段时间内学习使用这个C++准标准库时不断涌现在我脑海的想法。不过话说回来,即便这样,C++那浩如烟海的技巧以及模板那毁誉参半的语法依然还是让人头痛的事情。Boost中有说不完的漂亮设计,无论是对函数式编程方式的支持、还是异步IO的接口、正则表达式、字符串处理算法、容器,无一不是独具匠心。更不用说这个代码跨平台的兼容性很好了。感觉C++从来没有放弃其兼容并包的设计思想,“没有最好的,只有最合适的,C++提供你...
基于3c2410的Linux2.6.22移植 2017年02月05日 23 阅读 经历近2周的时间,查阅大量的参考资料和贴子,终于成功将Linux2.6.22移植到ARM2410上。中间走了不少弯路,不过走弯路也是一种收获,因为可以碰到和解决许多问题,增长知识。因为Linux版本问题以及开发平台的不同,网上的很多文章并不完全适合自己的板子,需要自己摸索和修改。写这点东西算是对前一阶段工作的总结,以免将来忘记。移植大体的步骤主要有:(1) 交叉编译环境的建立(我的主机系统是Ubuntu7.04);(2) 开发板(我用的是博创的2410)N...
Linux下安装PCI转串口卡及USB转串口器的驱动方法 2017年02月05日 19 阅读 一、PCI转串口卡安装 型号NetMos Nm9835CV1、插入PCI卡到主机2、启动 Linux,打开终端3、输入命令:#setserial /dev/ttyS0 -a (COM-1)显示内容:/dev/ttyS0, Line 0, UART: 16550A, Port: 0x3f8, irq: 4Baud_base: 115200, clos_delay: 50, divisor: 0closing_wait: 3000, closing_wait2...
Linux源代码已超过1000万行 价值达5亿美金 2017年02月05日 19 阅读 10月23日消息,一项分析发现,在最近发布2.6.27版本Linux内核之后,包括Linux内核文件在内的源代码行数已经超过了1000万行。 不过,这个数字包括空白行、注释和整个内核源代码全年检查的文本文件。采用不同的方法进行计算,实际文本行数刚超过900万行。但是,我们喜欢更大的1000万行的数字,因为空白实际上对于代码的可读性是很重要的。 与所有的长期编程项目一样,Linux内核代码库的规模是不断变化的,因为老的代码需要取消和更换。不过,更新的功能将不...
Linux下USB驱动之skeleton分析 2017年02月05日 21 阅读 Usb_skeleton.c,是USB驱动的框架,适合USB驱动的初学者。1.结构体内核其实就是一坨坨的数据结构,加上一根根链表。对于初学者,如果直接看USB驱动代码,大概会被那些名字相近的结构体弄得晕头转向,比如usb_host_interface和usb_interface,看着看着就把两个混淆了。所以,在学习USB驱动之前,建议把相关结构体都拎出来看一下,其实,也就那么几个结构体在那装神弄鬼。USB skeleton驱动中用到的主要字段已用蓝色标出:...
Linux键盘驱动范例 2017年02月05日 18 阅读 键盘在所有的驱动之中最为简单的一种,但它却包含了驱动的基本框架,对以后继续深入学习其他复杂的驱动大有裨益,以下便为你逐步剖析驱动的开发。采用的是查询方式。转载请注明出处:一.内核模块的注册和撤销在加载模块的时候,首先运行的是内核模块的注册函数。它的功能包括内核注册设备以及变量的初始化。static int head,tail;int _init Keypad_init(void){int result;result=register_chrdev(KEY_...