ARM嵌入式linux复习心得总结2

20xx.10.10 Evo Yang

ARM嵌入式linux复习心得总结2:

一、文件编程综合实验—文件拷贝

这里的文件拷贝实验是在昨天创建文件的基础之上的综合练习,由于是Linux应用编程的基础所以要求要非常的熟练,而文件拷贝更是重点中的综合应用,因此详细分析一下如何使用库函数,实现文件copy的功能。同样使用Vmware虚拟机Linux环境使用vi编辑器创建file_cp.c文件输入代码:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<strings.h>

#define BUFFER_SIZE 1024 //定义buffer的空间长度

Int main(int argc,char *argv[])

{

FILE *from_file; //定义一个FILE类型的变量方便以后对文件的操作

FILE *to_file;

long file_len = 0; //记录文件大小作为数据传送的指标 char buffer[BUFFER_SIZE] //定义一个字符数据存储空间大小为

BUFFER_SIZE

char *ptr;

if(argc! = 3) //argc表示字符串数量,这里一共应该有3个字符串(命令字符)故首先判断用户使用的命令是否正确(这个if语句常在Linux编程中出现,而且位置都差不多,因此最好将他记住便于后期编程使用)

{

Printf(“Usage:%s fromfile tofile\n”,argv*0+);\

Exit(1); //切记‘1’是出错返回

}

If((from_file = fopen(argv*1+,”rb”))==NULL) //打开from_file文件,并将地址赋给from_file判断是否打开成功

{

Printf(“open %s error”,argv*2+);

Exit(1);

}

If((to_file=(argv*2+,”wd”)) == NULL) //同上 { Printf(“open %s error”,argv*2+); Exit(1);

}

/*测的文件大小*/

Fseek(from_file,0L,SEEK_END);

File_len = ftell(from_file);

Fseek(from_file,0L,SEEK_SET);

Printf(“from file size is %d\n”,file_len);

/*文件拷贝!*/

While(!feof(from_file)) { Fread(buffer,BUFFER_SIZE,1,from_file); If(BUFFER_SIZE>=file_len) { Fwirte(buffer,file_len,1,to_file);

}

Else

{

Fwrite(buffer,BUFFER_SIZE,1,to_file);

File_len = file_len – BUFFER_SIZE;

}

Bzero(buffer,BUFFER_SIZE); //置字节字符串buffer的前

BUFFER_SIZE个字节为零且包括‘\0’。

}

Fclose(from_file);//关闭文件

Fclose(to_file);

Exit(0);

}

注: Bzero 用法(摘自百度百科 这个解释比较清楚明了)

原型:extern void bzero(void *s, int n);

用法:#include <string.h>

功能:置字节字符串s的前n个字节为零且包括‘\0’。

说明:bzero无返回值。

举例:

// bzero.c

/* bzero函数TC和VC中都没有,gcc中提供了 */

#include <stdio.h> #include <string.h> int main( void ) { struct { int a;

char s[5];

float f; } tt; char s[20]; bzero( &tt, sizeof( tt ) ); bzero( s, 20 ); printf( "Initial success." ); getchar(); return 0;

}

总结:文件的编程作为Linux系统编程的基础,一定要熟练的运用,在此推荐着重熟练编程file_copy综合性较强

二、时间编程

获取本地时间是Linux系统编程非常重要的一部分,为什么说他重要,我个人认为他编程的时候会经常用到,不管是应用程序还是系统模块,因此这里要着重学习一下Linux时间编程,建立time.c

#include<time.h>

#include<stdio.h>

Int main(void)

{

Printf(“%s”,ctime(&it)); //使用ctime获取时间并打印 Return 0 ; Ptr = localtime(&it); //转化为本地时间 Printf(“%s\n”,asctime(ptr)); //使用asctime获取时间并打印 Struct tm *ptr; Time_t it; It = time(NULL); //获取日历时间

三、总结:把握好Linux编程的基础行学习!!今天总的来说复习了好多,但着重的还是这几个编程例子,有些悲剧的是samba服务又不好用了所以又忙活了一阵,这个功能虽说很好用但自从安了Vmtools后就不怎么依赖了,现在主要是注重宿主机的联通性,以为自己现在做的一个实验就是使用NFS联通arm开发

板使用局域网加载文件系统然后启动所以网络如果不好用了那就真的啥也不用干了...

 

第二篇:ARM-linux学习总结

AEM-linux学习总结

系统要求:windows下虚拟机安装Red Linux

挂接ARM开发板

知识点1.

1. Windows XP 与Linux 共享文件夹问题

在Linux系统中选择VM-Settings 在弹出的Virtual Machine Setting 对话框中选择Option属性页,在Setting中选择Shared Folers来设置共享文件夹。

2.挂接arm板

在宿主机PC上启动NFS服务,并设置好共享的目录,之后在开发板上运行:

mount –t nfs 192.168.0.10:/arm /host

(IP地址要根据实际情况修改)

挂接宿主机的根目录,成功后在开发板上进入/host目录便相应进入宿主机的ARM目录。

mount 192.168.0.10:/arm /mnt

在Linux mnt/目录下看是否可以列出ARM目录下的所有文件和目录。

知识点2.

1. 交叉编译问题

第一步:先编写.c文件(包含完整的头文件)。

第二部:编译(gcc –o filename filename.c)

第三部:编写 Makefile文件和Rules.mak文件

第四步:编译(make命令)

出来的目标文件,下载的目标ARM板。启动ARM,运行程序。

1.建立目录:mkdir 目录名

2.删除空目录:rmdir 目录名

3.无条件删除子目录: rm -rf 目录名

删除文件:rm 文件名

4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上一级目录:cd 。)

5.查看自己所在目录:pwd

6.查看当前目录大小:du

7.显示目录文件列表:ls -l (-a:增加显示隐含目录)

其中:蓝:目录;绿:可执行文件;红:压缩文件;浅蓝:链接文件;灰:其他文件;红底白字:错误的链接文件

8.浏览文件:more 文件名.txt;less 文件名.txt

9.复制文件: cp 源文件 目标文件 (-r:包含目录)

10.查找文件:(1)find (2)locate 命令名

11.链接:(1)建立hard链接:ln 来源文件 链接文件(-d:创建目录链接);(2)建立符号链接:ln -s 来源文件 链接文件

12. 查看文件内容,并将显示内容加注行号 cat –n 文件名

13. touch 文件名 文件名若为新的文件名,表示要建立这个新文件。若为旧文件名,表示要更改文件的编辑日期。

14.mv 源文件名 目标文件名 重新命名 mv 源文件 目标目录 移动文件

15 locate 文件名 列出文件所属的路径

16 find –name 文件名 由工作目录起,列出文件所属的路径

二.驱动挂载类

1.检查硬盘使用情况:df -T -h

2.检查磁盘分区:fdisk -l

3.挂载软硬光区:mount -t /dev/fdx|hdax /mnt/目录名

其中::modos--FAT16;vfat--FAT32;ntfs--NTFS;光驱--iso9660

支持中文名:mount -o iocharset=x /dev/hdax /mnt/目录名(其中:x=cp936或

挂载光驱:mount -t auto /dev/cdrom /mnt/cdrom

挂载ISO文件:mount -t iso9660 -o loop xxx.iso /path

4.解除挂载:umount /mnt/目录名

解除所有挂载:umount -a

5.建立文件系统:mkfs -t /dev/hdxx。其中:ftype:ext2、ext3、swap等

三.进程控制类

1.列出当前进程ID:ps -auxw

2.终止进程:(1)终止单一进程:kill 进程ID号

(2)终止该程序所有进程:Killall 程序名

(3)终止X-Window程序:xkill

3.查看资源占用情况:(1)top (2)free (3)dmesg

4.查看环境变量值:env

5.重启:(1)reboot (2)Ctrl Alt Del (3)init 6

6.关机:(1)shutdown -h now (2)halt (3)init 0

7.切换桌面:switchdesk gnome|KDE|...

#cp linux-2.4.18.tar.gz /usr/src

然后解压该文件,命令为:

#tar -zxvf linux-2.4.18.tar.gz

如果你所下载的是.bz2文件,例如linux-2.4.0test8.tar.bz2,请使用下面的命令 #bzip2 -d linux-2.4.18.tar.bz2

#tar -xvf linux-2.4.18.tar

相关推荐