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开发
板使用局域网加载文件系统然后启动所以网络如果不好用了那就真的啥也不用干了...
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
安全事故反思总结结合近期发生的几起安全事故,从多个角度进行了深刻的自我反思。每一起事故的发生,也督促我们反思在工作中安全管理、设备…
我把我写的拿出来当例文了,诶,文笔不好,你们看的懂就行哈工作总结格式字体要求:(心得体会字体格式在后面,记得看下去哦!)页面设置为…
学习董事长讲话材料、周口公司20xx年度工作总结心得遵照公司领导指示,我们分厂于20xx年x月份对《董事长讲话材料》及《周口公司2…
心态决定成败机遇成就人生———试用期个人总结进入东方建银以来,在单位领导的精心培育和教导下,通过自身的不断努力,无论是思想上、工作…
军训心得体会军训是每个大学生必上的一课,作为新时代的天之骄子,我们负担着振兴祖国的大业,只有拥有强健的体魄,坚强的意志,严格的纪律…
大学生干部培训心得体会“在我的意识里“干部培训会”是例行公事,是传统,是文山会海,是无谓的浪费时间。然而,这样的偏见只是从前。当身…
20xx年x月x日星期三上午10点半考完了科目四,持续了2个半个月的苦逼考驾照生活结束了,回到公司,下午网上看到上海闵行一个学车的…
拍拍开店总结新手开店的时候,总是有点茫然,所以我希望我的帖子能让大家感受到一点微薄之盐的力量。一、选择产品和进货渠道如果你没有任何…
参加创新实验项目心得体会20xx年度,我们获得了苏州大学研创新性实验计划项目,指导教师为洪法水教授。现在,将近一年的“大学生创新性…
09910080223杨婷婷回首这两周的微格教学课程,感受颇多。作为一名即将毕业的职业技校师范类学生,也许一年后就要踏上岗位,走上…