zoukankan      html  css  js  c++  java
  • CRT(C Runtime Library)—— C/C++运行时库

    C runtime library(part of the C standard library)

    任何一个 C 程序,它的背后都有一套庞大的代码来进行支撑,使得该程序得以运行在更高级别上,而不必担心同计算机底层操作的细节,这套代码至少包括:

    • 入口函数(Linux,_start)
    • 入口函数所依赖的函数构成的函数集合(平台系统相关);
    • 各种标准库函数的实现;

    这样的一套代码即称为运行时库(Runtime Library),C 语言的运行库,即被称为 C 运行库(C Runtime library,CRT)。一般来说,CRT 函数就是标准的 C 语言函数。例如,printf、scanf、strlen、fopen 等函数就属于 CRT 函数。

    linux、windows 的 CRT 源码:

    • visual studio,windows 下的 C/C++ IDE,在 VCcrtsrc 里便可找到一份 C 语言运行库的源代码。
    • linux,libc

    0. CRT 的基本构成

    • 启动与退出:包括入口函数及入口函数所依赖的其他函数;
    • 标准函数:由 C 语言标准规定的 C 语言标准库所应当具备的函数实现;
    • I/O:I/O 功能的封装与实现
    • 堆:堆的封装与实现
    • 语言实现:

    1. windows 下的 CRT 函数

    在 windows 下所有的 CRT 函数最终都是转化成为 win32 API 来执行的。

    windows 本身并没有在内核之上提供对 CRT 的支持。 CRT 既可以通过静态连接来实现,也可以通过动态链接来实现(MSVCRT.DLL)。常用的安全 CRT 函数常用的安全 CRT 函数安全 CRT(C Runtime Library = C 运行时间库)函数,是微软公司对 C/C++ 语言的扩展。

    它在原来函数名后添加了“_s”后缀;一般返回出错代码;并将原来的函数返回值,作为一个参数,添加到函数输入参数列表的最后;对带缓冲区参数的函数,还添加了表示缓冲区大小的输入参数,以防止内存溢出。

    warning C4996: ‘fopen’: This function or variable may be unsafe.(_CRT_SECURE_NO_WARNINGS)

  • 相关阅读:
    为什么选择webpack
    webpack-模块(module)
    AHK 命令行
    icon 多 索引 图标
    win10 鼠标右键 某类文件 资源管理器 卡死
    管道 命令 %errorlevel! 环境变量 优先级 问题 随笔 CMD /V 延迟的环境变量
    SolidWorks 管道 routing
    SolidWorks 工程图 表格 杂
    windows shell 笔记 3
    windows shell 笔记 2
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423727.html
Copyright © 2011-2022 走看看