编译器
arm-linux-gcc
烧录
(1)下载命令:rx
rx+可执行程序.
(2)修改权限: chmod 777 可执行程序
(3)执行工程:./可执行程序.
文件IO
Linux一切设备皆文件
硬件的访问,访问的就是驱动
使用方法
提供相应的接口函数→man手册
系统IO
使用系统函数api接口实现文件的操作:
打开文件、读取文件、写入文件、关闭文件、文件的偏移
Linux文件类型
普通文件 - touch open close
目录文件 d mkdir opendir closedir
链接文件 l ln,link open close
网络文件 s 驱动 socket close
管道文件 p mkfifo open close
字符设备 c 驱动 open close
块设备 b 驱动 open close (U盘、硬盘)
接口函数
1、打开文件 open
const char *pathname,文件访问的路径名
int flags 文件的使用权限
其他参数可选:
返回值:
成功:返回一个文件描述符
失败:返回-1
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main ()
{
int fd;
fd=open ( " 1.txt",O_RDWR/*|O_CREAT*/);
if(fd==-1)
{
perror("打开1.txt失败\n"); //打印出错信息
}
return 0;
}
打印错误提示信息函数:perror
2、读取文件 read
int fd 文件描述符
void *buf 读取文件的缓冲区
size_t count 读取文件的字节数
返回值:
成功:返回读取字节数
失败:-1
先创建1.txt文件
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main ()
{
int fd,ret;
char buf[1024]={0};
fd=open ( "1.txt",O_RDWR/*|O_CREAT*/);
if(fd==-1)
{
perror("打开1.txt失败\n"); //打印出错信息
}
ret=read(fd,buf,1024);
printf("读取到的字节数:%d\n",ret);
printf("读取到的缓冲区:%s\n",buf);
return 0;
}
3、写入文件 write
int fd 文件描述符
const void *buf 写入文件缓冲区
size_t count 写入字节数
返回值:
成功:返回写入字节数
失败:-1
int wrt
char str[1024]={"hello world"};
wrt=write(fd,str,10);
4、关闭文件 close
close(fd);
5、文件光标偏移 lseek
int fd 文件描述符
off_t offset 偏移的字节数
int whence 偏移的起始位置
辨识:
lseek(fd,10,SEEK_SET) …正数向后偏,负数向前偏
解决scanf缓冲区阻塞
scanf(" %d",&a);(百分号前面加空格)
scanf("%[^\n]s",str);(遇到回车结束)