56星座屋
当前位置: 首页 星座百科

linux系统原理入门(Linux系统编程-01概述)

时间:2023-05-25 作者: 小编 阅读量: 6 栏目名: 星座百科

系统调用的返回值:通常,用一个负的返回值来表明错误,返回一个0值表明成功。通过文件描述符可以直接对相应的文件进行操作。文件描述符用来指定已打开的文件。

1、系统编程概述

操作系统的职责

操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来。

什么是linux系统编程 ?

在有操作系统的环境下编程,并使用操作系统提供的系统调用及各种库,对系统资源进行访问。学会了C语言再知道一些使用系统调用的方法,就可以进行Linux系统编程了。

2、系统调用概述

系统的软件层次

  • 系统调用是操作系统提供给用户程序的一组“特殊”函数接口。
  • Linux的不同版本提供了两三百个系统调用。
  • 用户程序可以通过这组接口获得操作系统(内核)提供的服务。

例如:用户可以通过文件系统相关的系统调用,请求系统打开文件、关闭文件或读写文件

系统调用按照功能逻辑大致可分为:

进程控制、进程间通信、文件系统控制、系统控制、内存管理、网络管理、socket控制、用户管理。

系统调用的返回值 :

通常,用一个负的返回值来表明错误,返回一个0值表明成功。错误信息存放在全局变量errno中,用户可用perror函数打印出错信息。

在Linux中,应用程序编程接口(API)遵循POSIX标准

POSIX标准基于当时现有的UNIX 实践和经验,描述了操作系统的系统调用编程接口(实际上就是API),用于保证应用程序可以在源代码一级上在多种操作系统上移植运行。如:linux下写的open、write 、read可以直接移植到unix操作系统下

3、系统调用I/O函数

系统调用中操作I/O的函数,都是针对文件描述符的。通过文件描述符可以直接对相应的文件进行操作。

如:open、close、write 、read、ioctl

文件描述符

文件描述符是非负整数。打开现存文件或新建文件时,系统(内核)会返回一个文件描述符。文件描述符用来指定已打开的文件。

#define STDIN_FILENO 0 //标准输入的文件描述符#define STDOUT_FILENO 1 //标准输出的文件描述符#define STDERR_FILENO 2 //标准错误的文件描述符程序运行起来后这三个文件描述符是默认打开的。

3.1 open函数

#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>//当文件存在时使用:int open(const char *pathname, int flags);//当文件不存在时使用:int open(const char *pathname,int flags, mode_t mode);

功能:打开一个文件

参数:

pathname:文件的路径及文件名。flags:open函数的行为标志。mode:文件权限(可读、可写、可执行)的设置

返回值:

成功返回打开的文件描述符。失败返回-1,可以利用perror去查看原因

3.2 close函数

#include <unistd.h>int close(int fd);

功能:关闭一个文件参数:fd是调用open打开文件返回的文件描述符。返回值:

成功返回0。失败返回-1,可以利用perror去查看原因。

3.3 write函数

#include <unistd.h>ssize_t write(int fd, const void *addr,size_t count);

功能:把指定数目的数据写到文件

参数:

fd:文件描述符。addr:数据 首地址。count:写入数据的字节个数。

返回值:

成功返回实际写入数据的字节个数。失败返回-1,可以利用perror去查看原因

3.4 read函数

#include <unistd.h>ssize_t read(int fd, void *addr, size_t count);

功能:

把指定数目的数据读到 内存

参数:

fd:文件描述符。addr:内存 首地址。count:读取的字节个数。

返回值:

成功返回实际读取到的字节个数。失败返回-1,可以利用perror去查看原因

3.4 remove函数

#include <stdio.h>int remove(const char *pathname);

功能:删除文件

参数:pathname :文件的路名 文件名。返回值:

成功返回0。失败返回-1,可以利用perror去查看原因。

4、系统调用与库

库函数由两类函数组成

  • 不需要调用系统调用

不需要切换到内核空间即可完成函数全部功能,并且将结果反馈给应用程序,如strcpy、bzero等字符串操作函数。

  • 需要调用系统调用

需要切换到内核空间,这类函数通过封装系统调用去实现相应功能,如printf、fread等

库 函数与系统调用的关系 :

并不是所有的系统调用都被封装成了库函数,系统提供的很多功能都必须通过系统调用才能实现。

系统调用是需要时间的,程序中 频繁 的使用系统调用会降低程序的运行效率。

当运行内核代码时,CPU工作在内核态,在系统调用发生前需要保存用户态的栈和内存环境,然后转入内核态工作。系统调用结束后,又要切换回用户态。这种环境的切换会消耗掉许多时间。库函数访问文件的时候根据需要,设置不同类型的缓冲区,从而减少了直接调用IO系统调用的次数,提高了访问效率。

    推荐阅读
  • 手抓饭的做法(怎么制作手抓饭)

    以下内容希望对你有帮助!手抓饭的做法食材:羊排、胡萝卜、洋葱、大米、山楂、葡萄干、花椒、孜然粉、食用油。大米用水泡半个小时,羊肉切小块,胡萝卜切丁或丝,洋葱切丁。锅里放油,放入洋葱炒出香味,再放入羊肉翻炒。倒水没过羊肉煮大约十分钟。把所有炒好的菜,肉,汤和葡萄干,全部倒入电饭锅,把泡好的米饭均匀撒在上面一层,1:2比例为好,开始焖20分钟。打开后,菜,肉,米饭拌匀即可食用。

  • jdk并发包使用教程(线程并发协调神器CountDownLatch和CyclicBarrier)

    就拿CountDownLatch来说,它的命名形象的表示了其能力属性,Count代表着计数,Down代表着计数器的递减操作,而Latch表示计数器递减后的结果动作。当计数器置为0后,阻塞的线程被释放。使用场景就像上文描述的,CountDownLatch就像是田径赛场上裁判员发射的发令枪,所有参赛的选手准备就绪后,发令枪一响,所有运动员闻声而动。这就好比公司组织团建,约定好了早上8点半在公司大门集合,那么司机师傅肯定要等到所有参加团建的同时都到齐后才会发车。

  • window10玩dnf卡顿(要怎么解决呢)

    接下来我们就一起去了解一下吧!window10玩dnf卡顿首先使用鼠标在桌面空白右击,并在弹出菜单中使用鼠标左击项目。在点击左侧的设项目,之后使用鼠标左击下方的项目,在弹出的菜单中使用鼠标左击项目。接着在设置列表中找到,使用鼠标左击窗口右侧的项目,在弹出的菜单中使用鼠标左击项目。设置完成后点击应用,保存设置即可。

  • 排球小组赛积分规则(排球赛小组积分制是怎么积分得出结果的)

    我们一起去了解并探讨一下这个问题吧!排球小组赛积分规则小组赛都是按照胜场计算,胜者加分。前4局比赛采用25分制,每个队只有赢得至少25分,并同时超过对方2分时,才胜1局。正式比赛采用5局3胜制,决胜局的比赛采用15分制,一队先得8分后,两队交换场区,按原位置顺序继续比赛到结束。在决胜局(第五局)的比赛,先获15分并领先对队2分为胜。

  • 敷毛孔收敛水的正确步骤(怎么敷毛孔收敛水)

    所以,第一步就是要清洗双手,避免脏污蔓延到脸上的毛孔里。卸掉面部彩妆,洗面奶清洗脸部,或用一些洗脸仪.洗完脸之后,姑娘们就可以开始用清洁面膜或者去黑头的护肤品了,更加安全。如果姑娘们急着出门,那么用完城收敛水之后做好保湿,使用质地清爽的面霜也是没问题的。无论何时,为了我们肌肤的年轻状态,使用保湿型面霜和乳液都是不可缺少的哦。

  • 沉香如屑杨紫造型不如女二(沉香如屑的3大争议)

    《沉香如屑》空降播出,网友吐槽剧情俗套,杨紫颜值不如孟子义——引言。很多网友喜欢杨紫,主要还是看实力,奈何《沉香如屑》里面,由于她与孟子义的同框画面有所差距,使得杨紫被无数网友吐槽脸垮了。随后,孟子义艳压杨紫的词条便登上了热搜。不仅女演员被拿来对比,成毅与张睿也同样被网友吐槽。因此,《沉香如屑》的前期预热有多火,如今其不如期待值的吐槽声就有多激烈。

  • 喜出望外望的意思(喜出望外解释)

    下面希望有你要的答案,我们一起来看看吧!喜出望外望的意思喜出望外的望释义:希望,意料。喜出望外,汉语成语,拼音是xǐchūwàngwài,释义:是指因遇到意外的喜事,心中非常高兴。出自宋·苏轼《与李之仪》。成语辨析近义词:大喜过望、喜从天降、欣喜若狂、眉开眼笑、如获至宝。

  • 超过30岁的女人必备护肤品(这3种功能性护肤品要常用)

    而且上了年纪之后,眼睛周围的皮肤也需要补水,这样才能做到提亮眼周皮肤,预防新的皱纹产生。随着年龄的增长,皮肤毛孔会变大,里面就会积攒更多的粉尘和垃圾,如果不及时的清理,就会引发闭口,肤色暗沉,角质层增厚等问题。不过清洁面膜也不宜多做,一周1次就够了,频繁的使用清洁面膜很容易破坏皮肤屏障,让皮肤变成敏感肌。另外在使用完清洁面膜之后一定要做好皮肤的补水工作,因为清洁面膜在清洁的同时还会带走一定的水分。

  • 家具定制安装,常见问题解决方法 定制家具出现问题如何处理

    定制家具安装往往存在各种问题,因此解决方案是主人需要理解和学习,勤学知装修网www.qinxuezhi.com帮助主人了解常见问题的解决方案。电路板没有边缘密封,因此这需要端子设计来考虑间隙。该板应平整,固定,并用钻头正确钻孔,钻头必须垂直!滑动门的一般问题相对较小,相对来说,一扇门被推到右边。右边有一个空隙,这是一个推拉门或门洞本身不垂直。

  • 春节幸福的祝福语(春节来临之际的祝福)

    春节幸福的祝福语事业龙飞凤舞,家庭龙凤呈祥,儿孙龙驹凤雏,健康龙马精神,思维龙腾虎跃,新的一年里愿朋友龙兴风聚,大有作为,万事龙章凤彩,福寿安康!春节人多伤脑筋,满城内外都拥挤,鞭炮烟花要远离,老人小孩少出行,睡眠规律人有劲,春节怎能不开心!春节祝福短信来到,祝你在新年里:事业如日中天,心情阳光灿烂,工资地覆天翻,未来风光无限,爱情浪漫依然,愉快游戏人间。