Linux C编程:流文件定位与ftell/fseek

需积分: 20 0 下载量 78 浏览量 更新于2024-08-16 收藏 3.42MB PPT 举报
"这篇资源主要介绍了Linux Shell程序设计中的流文件定位,以及Linux C程序的基础知识,包括编辑、编译、运行C程序的过程,以及文本编辑器vi的使用。" 在Linux Shell程序设计中,流文件定位是进行高效文件操作的关键。标准I/O库提供了两个函数来实现这一功能:ftell和fseek。ftell函数用于获取当前文件流的文件位置,它返回的是一个长整数,表示从文件开头到当前位置的字节数。如果函数调用失败,ftell会返回-1。而fseek函数则可以改变文件流的位置。它接受三个参数,分别是文件指针、偏移量和基准点。偏移量是一个长整数,表示相对于基准点的字节数,可以为正或负。基准点可以通过whence参数指定,它可以是SEEK_SET(文件开始)、SEEK_CUR(当前文件位置)或SEEK_END(文件结尾)。通过fseek,开发者可以灵活地在文件中移动读写位置。 在Linux环境下编写C程序,通常会使用gcc编译器。例如,要创建并编译名为"1-1.c"的C程序,首先需要使用文本编辑器(如vim)编写源代码。在终端中输入`vim 1-1.c`来启动vim编辑器并创建新文件。然后,输入源代码,保存并退出。接下来,使用`gcc 1-1.c -o 1-1`编译源代码,这将生成一个名为"1-1"的可执行文件。最后,通过运行`./1-1`来执行程序,若一切顺利,程序将按照预期输出结果。 在Linux环境中,vi(Visual Interface的缩写)是一个强大的文本编辑器,它不提供图形界面和菜单,而是依赖于命令模式。vi有三种工作模式:命令模式、插入模式和末行模式。在命令模式下,用户可以通过敲击键盘上的特定按键来执行各种编辑命令,如移动光标、删除文本等。要进入插入模式以输入文本,可以按'i'或'a'键。末行模式主要用于执行保存、退出等全局操作,通过在命令模式下输入冒号(:)进入。vi编辑器的学习曲线较陡峭,但一旦熟悉其操作,它将成为非常有效的工具。