第1章 UNIX基础知识

1.操作系统的定义

① 操作系统严格意义将指的是内核部分,内核指的是一种控制硬件的软件,为其他应用软件提供运行环境
② 宽泛来说,是指内核和一些软件应用等

2.出错处理相关 errno 变量及:strerror和perror

    在文件<errno.h>文件中定义了errno 以及可以赋予它的各个常量。这些常量都以E开头。该变量在头文件中的定义

#ifndef errno
    extern int errno;
#endif

    因为,errno可以把最后一次调用C的错误代码保留,如果最后一次调用C函数成功,则不会更改errno,所以如果你要使用之前,可以先清空errno,然后通过errno判断下面要执行的函数是否成功。另外,任何函数都不会将errno的值设置为0,而且<errno.h>中的所有常量都不为0.

       把errno转换为相应文字:

            1>  使用strerror函数

                   函数原型:char * strerror(int errno)

                   使用方法:fprintf(stderr, "%s", strerror(errno));

            2>  使用perror函数

                   函数原型:void perror(const char *s)

                   使用说明:参数s指定的字符串是要先打印出来的信息,可以由我们自己定义,然后系统会在s字符串后加上错误原因的字符串。

    下面是一个例程:

#include "apue.h"
#include <errno.h>
int
main(int argc, char *argv[])
{
    fprintf(stderr, "EACCES: %s\n", strerror(EACCES));
    errno = ENOENT;
    perror(argv[0]);
    exit(0);
}	//编译成 a.out 文件,运行方式:./a.out

输出:
EACCES: Permission denied
./a.out: No such file or directory

    注:errno是全局变量,如果在多线程或者进程编程中,子线程想要查看errno确定自己的错误类型,可惜该errno被另一个线程更改了,这就出问题了。errno的线程/进程安全性指的就是这点,在多线程和多进程编程中,errno会变为线程或进程的私有变量。

       POSIX和ISO C将errno定义为一个符号,它可以是一个包含出错编号的整数,也可以是一个返回出错编号指针的函数。

extern int *__errno_location(void);
#if !defined _LIBC || defined _LIBC_REENTRANT
/* When using threads, errno is a per-thread value.  */
    #define errno (*__errno_location ())
#endif



利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值