西安市沣东新城建设局网站,昆明快速做网站,wordpress 微信授权,企业网站建设的基本流程目录 基于ARM语音识别的智能家居系统
练习一
一、程序编译
练习二#xff1a; 二、文件IO
三、文件IO常用API接口函数
1、打开文件 open#xff08;#xff09;
2、将数据内容写入文件 write#xff08;#xff09;
3、关闭#xff08;保存#xff09;文件
四、…
目录 基于ARM语音识别的智能家居系统
练习一
一、程序编译
练习二 二、文件IO
三、文件IO常用API接口函数
1、打开文件 open
2、将数据内容写入文件 write
3、关闭保存文件
四、编程示例
总结 基于ARM语音识别的智能家居系统
我们上一篇讲了关于Linux系统的一些质量今天我们实现在Linux系统下编译程序我们通过两个小练习来熟悉一下。
练习一 熟悉基本命令的使用 1、在用户桌面目录下新建一个目录文件 demo/。 2、在该目录 demo/下新建一个普通文件 hello.c。 3、修改文件hello.c的权限为 对用户可读可写可执行 rwx 7 对同组用户可写可执行 -wx 3 对其他用户可读 r-- 4 4、将该目录 demo/ 拷贝到根目录下。 一、程序编译
我们编写程序实现输出hello world!!,相信大家这里的程序都会写。
//#include stdio.h //宏包含导入c语言标准输入输出头文件int main() //程序入口
{printf(hello world!!\n); //在终端上打印 hello world!! 字符串 return 0;
}gcc 编译器、编译c语言的工具。编译 gcc hello.c 编译得到一个可执行文件 a.out
执行 ./可执行文件 ./a.out
gcc hello.c -o bin
-o:将可执行文件重命名为bin方便使用防止文件覆盖。 我们在Linux系统中运行gcc hello.c可以得到一个.out文件。如果程序有错就会提示哪里有错。下面是GCC编译器的介绍 GCCGNU Compiler Collection是一款免费的开源编译器支持多种编程语言例如C、C、Objective-C、Fortran、Ada等。它是许多操作系统和软件的基石包括GNU/Linux、Mac OS X、FreeBSD等。由于GCC的广泛应用和社区的庞大它成为了业内最流行和广泛使用的编译器之一。 GCCGNU Compiler Collection是一款免费的开源编译器支持多种编程语言例如C、C、Objective-C、Fortran、Ada等。它是许多操作系统和软件的基石包括GNU/Linux、Mac OS X、FreeBSD等。由于GCC的广泛应用和社区的庞大它成为了业内最流行和广泛使用的编译器之一。 练习二 使用 notpad编写C程序实现打印自己的姓名学校专业。在Ubuntu共享目录中编译运行。 拓展打印99乘法表循环。 我们这里的程序都比较简单我就直接展示代码这里主要是来练习如何用GCC编译程序熟悉这个过程。
#include stdio.h int main()
{int i, j;for(i 1; i9; i){for(j 1; ji; j){printf(%dx%d%d , i, j, i*j);}printf(\n);}return 0;
} 如果你得到的结果和我一模一样就说明你已经掌握了这个方法接下来我们介绍文件。
二、文件IO 什么是文件文件就是存放数据的集合。比如.txt文件 .bmp文件 .jpg文件、、、、Unix/Linux对数据文件(*.mp3、*.bmp)程序文件(*.c、*.h、*.o)设备文件LCD、触摸屏、鼠标网络文件( socket ) 等的管理都抽象为文件使用统一的方式方法管理。 在Linux系统中一切皆是文件!!!
控制一个LCD屏幕设备----》控制LCD设备对应的设备文件---》文件IO
三、文件IO常用API接口函数
打开文件----》对文件进行读/写操作-----》关闭保存文件
1、打开文件 open
头文件
#include sys/types.h
#include sys/stat.h
#include fcntl.h函数原型int open(const char *pathname, int flags);
参数列表const char *pathname需要打开的文件路径的字符串 ./1.txtint flags: 打开文件的方式O_RDONLY 以只读方式打开文件O_WRONLY 以只写方式打开文件O_RDWR 以可读写方式打开文件
返回值失败 -1错误码errno被设置。成功返回一个新的文件描述符文件的唯一标识符遥控器我们就可以通过这个文件描述符操纵这个文件。
2、将数据内容写入文件 write
头文件#include unistd.h函数原型ssize_t write(int fd, const void *buf, size_t count);
从buf写入数据的内存缓冲区中 取count个字节数据 写入fd指代的文件中
参数列表int fd需要写入数据的目标文件的文件描述符就是open函数的返回值。const void *buf临时存放待写入的数据的内存缓冲区size_t count写入的数据字节大小返回值失败 -1错误码errno被设置。成功返回实际写入的字节个数。
3、关闭保存文件
头文件#include unistd.h
函数原型int close(int fd);
参数列表int fd 需要关闭的目标文件的文件描述符。
返回值成功返回0失败返回-1错误码errno被设置。
四、编程示例
#include stdio.h
#include sys/types.h //open()
#include sys/stat.h
#include fcntl.h
#include unistd.h //write()int main()
{//1、打开文件 1.txtint fd open(./1.txt, O_RDWR);if(fd -1){//printf(open file failed!);perror(open file failed!); //通过错误码打印错误信息return -1; //程序非正常结束}//2、向文件中写入数据char buf[50] 好好学习天天向上;int w_size write(fd, buf, 50);printf(返回实际写入的字节个数: %d\n, w_size);//3、保存退出close(fd);return 0;
} //1、打开文件 1.txt这是打开文件的部分。它尝试打开当前目录下的1.txt文件如果文件不存在则返回-1。//通过错误码打印错误信息这是错误处理的代码。如果在打开文件过程中发生错误它会打印错误信息并返回-1。//2、向文件中写入数据这是向文件写入数据的部分。它创建一个字符数组buf并写入好好学习天天向上这句话。然后使用write()函数将buf的内容写入到文件中。//返回实际写入的字节个数: %d这是打印实际写入文件字节数的部分。//3、保存退出这是关闭文件的部分。在写入数据后使用close()函数关闭文件。 我们这里实现了打开文件写入文件的最后关闭文件今天的程序难度不大主要还是熟悉操作。
总结
今天我们主要熟悉了用GCC来编译程序和对文件的相关操作。下一篇我们来介绍在led屏幕上显示图片。