没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux C语言编程基础入门指南
Linux C语言编程基础入门指南
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 159 浏览量
更新于2024-07-03
收藏 227KB DOC 举报
"本资源是一份针对Linux操作系统下C语言编程初学者的入门指南,由007xiong整理编写,主要参考了Hoyt等人的原文。文档涵盖了C语言在Linux环境下的基础操作,包括但不限于: 1) Linux程序设计基础知识:介绍在Linux环境下使用C语言进行编程的基本概念和环境设置,让读者理解如何运用C语言进行源代码编写。 2) 源程序编译:详细讲解了如何使用GNU gcc编译器,如如何编译一个简单的'hello.c'程序,以及gcc的一些常用选项,如-o指定输出文件名、-c仅编译不链接、-g添加调试信息等。 3) Makefile的编写:Makefile是自动化构建工具,对于大型项目尤为重要。文档中介绍了如何编写Makefile,以适应更复杂的项目结构,使得编译过程更加便捷。 4) 其他主题:包括进程介绍、文件操作、时间概念、信号处理、消息管理、线程操作和网络编程等内容,这些是深入理解Linux系统和C语言编程不可或缺的部分。 通过阅读这份文档,初学者能够建立起在Linux环境中使用C语言编程的基础框架,并掌握必要的工具和技术。此外,文档还鼓励读者查阅gcc的帮助文档,以获取更多高级选项和深层次的知识。" 整个文档旨在为Linux C语言新手提供一个系统的学习路径,帮助他们逐步熟悉和掌握这一关键技能。无论是对Linux环境的适应,还是对C语言语法的掌握,都将对学习者后续的开发工作大有裨益。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/85619519/bgb.jpg)
用子进程创建一个子进程是每一个程序员的基本要求MRR
3)Linux 程序设计入门--文件操作
下文件的操作
前言
我们在这一节将要讨论 下文件操作的各个函数
文件的创建和读写
文件的各个属性
目录文件的操作
管道文件
。文件的创建和读写
我假设你已经知道了标准级 97的文件操作的各个函数%$% .%Q 等等当然
如果你不清楚的话也不要着急我们讨论的系统级的文件操作实际上是为标准级文件操作
服务的
当我们需要打开一个文件进行读写操作的时候我们可以使用系统调用函数 $使用完
成以后我们调用另外一个 4 函数进行关闭操作
-.>%@
-.>4.@
-.>4/4+/$4@
-.>4/4+4@
$4 !$\4)
$4 !$\4.0.)
4%.)
$ 函数有两个形式其中 $ 是我们要打开的文件名包含路径名称缺省是认为在
当前路径下面\4 可以去下面的一个值或者是几个值的组合
30UO31以只读的方式打开文件
30LU31以只写的方式打开文件
30UOLU以读写的方式打开文件
309SS8O以追加的方式打开文件
30U892创建一个文件
3088如果使用了 30U892 而且文件已经存在就会发生一个错误
303:3F以非阻塞的方式打开一个文件
302U如果文件已经存在则删除文件的内容
前面三个标志只能使用任意的一个如果使用了 30U8928 标志那么我们要使用 $ 的第
二种形式还要指定 . 标志用来表示文件的访问权限. 可以是以下情况的组合
70U7U用户可以读 70L7U用户可以写
707U用户可以执行 70UL用户可以读写执行
70UUS组可以读 70LUS组可以写
![](https://csdnimg.cn/release/download_crawler_static/85619519/bgc.jpg)
70US组可以执行 70UL组可以读写执行
70U32'其他人可以读 70L32'其他人可以写
7032'其他人可以执行 70UL3其他人可以读写执行
707O设置用户执行 O707O设置组的执行 O
我们也可以用数字来代表各个位的标志 总共用 P 个数字来表示文件的各种权限
DDDDD第一位表示设置用户 O第二位表示设置组 O第三位表示用户自己的权限位第四
位表示组的权限最后一位表示其他人的权限
每个数字可以取 执行权限,写权限N读权限D什么也没有或者是这几个值的和
比如我们要创建一个用户读写执行组没有权限其他人读执行的文件设置用户 O 位那么
我们可以使用的模式是设置用户 OD组没有设置[I,IND没有权限使用缺省
PIN即 D[DP
$&$&30U892D[DP)
如果我们打开文件成功$ 会返回一个文件描述符我们以后对文件的所有操作就可以
对这个文件描述符进行操作了
当我们操作完成以后我们要关闭文件了只要调用 4 就可以了其中 %. 是我们要关闭
的文件描述符
文件打开了以后我们就要对文件进行读写了我们可以调用函数 . 和 Q 进行文件的
读写
-.>4.@
44Z0 .%.".!AT 4Z0)
44Z0Q %.4".!AT 4Z0)
%. 是我们要进行读写操作的文件描述符AT 是我们要写入文件内容或读出文件内容的
内存地址 是我们要读写的字节数
对于普通的文件 . 从指定的文件%.中读取 字节到 AT 缓冲区中记住我们必
须提供一个足够大的缓冲区同时返回
如果 . 读到了文件的结尾或者被一个信号所中断返回值会小于 如果是由信号中
断引起返回而且没有返回数据 . 会返回且设置 为 82U当程序读到了文件
结尾的时候 . 会返回 D
Q 从 AT 中写 字节到文件 %. 中成功时返回实际所写的字节数
下面我们学习一个实例这个实例用来拷贝文件
-.>4.@
-.>%@
-.>4.@
-.>4/4+/$4@
-.>4/4+4@
-.> @
-.>4 @
-.:VV8U07]8D,N
!! "
#
![](https://csdnimg.cn/release/download_crawler_static/85619519/bgd.jpg)
% 0%.0%.)
A/40 .A/40Q )
AT W:VV8U07]8X)
!$ )
% MB?
#
%$ %4. &454% ((& "WDX)
)
*
+!打开源文件 !+
%% 0%.B$ "WX30UO31BB
#
%$ %4. &3$548 54(& "WX4 )
)
*
+!创建目的文件 !+
%0%.B$ "W,X30LU31J30U89270U7UJ70L7UBB
#
%$ %4. &3$548 54(& "W,X4 )
)
*
+!以下代码是一个经典的拷贝文件的代码 !+
QA/40 .B .% 0%.AT :VV8U07]8
#
+!一个致命的错误发生了 !+
%A/40 .BBYY MB82UA )
4%A/40 .@D
#
$ BAT )
QA/40Q BQ 0%.$ A/40 .
#
+!一个致命错误发生了 !+
%A/40Q BBYY MB82UA )
+!写完了所有读的字节 !+
4%A/40Q BBA/40 .A )
+!只写了一部分继续写 !+
4%A/40Q @D
#
$ IBA/40Q )
A/40 .BA/40Q )
*
*
+!写的时候发生的致命错误 !+
%A/40Q BBA )
剩余63页未读,继续阅读
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
omyligaga
- 粉丝: 61
- 资源: 2万+
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-2.8b825a4e.png)
电子书特权
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![](https://csdnimg.cn/release/wenkucmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)