系统编程学习

本文深入讲解了系统编程的基础知识,包括man操作指令、系统调用、内核与用户空间概念、标准输入输出错误处理。详细解释了open、write、lseek等关键函数的使用方法及应用场景,同时介绍了errno错误处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习内容:系统编程
man操作指令; 了解系统编程的基本概念;知道了系统调用的概念;以及内核空间和用户空间;知道什么叫标准输入,标准输出,标准错误处理的概念。在系统中一般用perror打印比如
if(fd ==-1)
{
perror(“creat”);
exit(1);
}表示输出错误。
关于open:open的函数中含有两个参数的一般表示,打开这个文件,并且文件存在;
open函数中有三个参数表示,先创建这个文件,再打开这个文件,前提是这个文件不存在。
例句:fd =open(“hello.txt”,O_RDWR | O_CREAT,00700)这个语句表示 先创建这文件,再打开,文件可以存在。
fd =open(“hello.txt”,O_RDWR | O_CREAT | O_EXCL,00700)个语句表示 先创建这文件,再打开文件,文件一定不存在,否则一定会报错。
关于write:
size_t write(int fd, void buf, size_t count); 其中int fd是文件描述符,buf是数组指针,size-t count 是用户自己想读的字节,而size-t write是返回实际的字节数;
今天学的最深刻的是lseek(fd,-10)是向前移动10个字节;
lseek(fd,0,SEEK_SET); 相对文件开头移动0字节
lseek(fd,strlen(buf)
-1 ,SEEK_CUR); 相对当前位置,向前移动xxx个字节
lseek(fd,strlen(buf)
-1,SEEK_END); 相对文件末尾,向前移动xxx个字节
fseek(fp,0,SEEK_SET);移动文件指针,相对文件开头移动0字节。
length =lseek(fd,0,SEEK_END);文件指针移动到文件末尾,返回移动后指针距离开头长度。就是算着这个文件的长度。
\n换行,刷新缓冲区。
一般buf定义用 char buf[32] ={0};
掌握部分库函数的功能;
Creat函数;
Open函数;
Read函数;
Write函数;
Lseek函数;
Close函数;
Fopen函数;
Fread函数 ;
fwrite函数;
Errno144种错误,头文件《errno。h》,是一个整形数字,用来确认错误类型
_t 约等于int
Perror用于标记出现错误的位置并打印<stdlib.h>
Echo $?用于输出上条出现的错误
Int main(int argv,char*argc[]) a.out 为argc[0]。
Errno144种错误,头文件《errno。h》,是一个整形数字,用来确认错误类型
Man 手册 man 1 加命令 man 2 加linux调用
Man3 加库函数gc[0]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值