首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux GNU C 和 ANSI C 的区别

Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C对标准C进行一系列扩展,以增强标准C的功能。...open: generic_file_open, release: ext2_release_file, fsync: ext2_sync_file, }; 但是,Linux...C99已经支持__func__宏,因此建议在Linux编程中不再使用__FUNCTION__,而转而使用__func__: void example(void) { printf("This...9.内建函数 GNU C提供了大量内建函数,其中大部分是标准C库函数的GNU C编译器内建版本,例如memcpy()等,它们与对应的标准C库函数功能相同。...Linux内核编程时常用的likely()和unlikely()底层调用的likely_notrace()、unlikely_notrace()就是基于 __builtin_expect(EXP,C)实现的

5.3K40

GNU系统概览

GNU系统是一套向上兼容Unix的完全自由的操作系统。GNU代表“GNU's Not Unix”。它的发音是带有g音的单音节。...(如果您再发布GNU软件,您可以为发布拷贝过程中的物理行为收取一定的费用,你也可以赠送拷贝。)开发GNU系统的工程叫做“GNU工程”。...当时,Linus Torvalds在1991年开发了一个类似Unix的内核Linux,并在1992年将其变成自由软件。...将Linux与几乎完成的GNU系统结合在一起就是一个完全的操作系统:GNU/Linux系统。估计现在有几千万人在使用GNU/Linux系统,通常是GNU/Linux发行版。...现在Linux的原始版本包含非自由的固件“blobs”;自由软件活动家目前也维护着一个自由版本的Linux,叫做Linux-libre。然而,GNU工程并不限于核心操作系统。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GNU和GPL

    GNU的内核是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核、FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。...Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux。...GCC(GNU Compiler Collection,GNU编译器集合),是一套由 GNU 开发的编程语言编译器。以及大部分UNIX系统的程序库和工具。...1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。...其主要工作是运行GNU计划,开发更多的自由软件。 从其创建到1990年代中自由软件基金会的基金主要被用来雇佣编程师来发展自由软件。

    1.1K10

    9个基本的GNU binutils 工具【Linux-Command-line】

    你也可以拥有这样的超级能力,GNU二进制实用程序(binutils)是一个很好的起点。 GNU binutils是二进制工具的集合,默认情况下,这些工具安装在所有Linux发行版中。...我正在使用的是RHEL,但是这些示例可以在任何Linux发行版上运行。...在Linux(当使用Linux Binary Compatibility时,还有BSD)上,这称为ELF(可执行和可链接格式)。...使用GNU编程序“as”,因为它在所有Linux平台上默认都可用。 屏幕快照 2019-11-19 下午5.11.17.png 现在,你有了ELF格式的第一个文件,然而当前你还不能执行它。...我的系统binutils版本为2.27-34, 考虑到Linux发行版的多样,你的版本可能有不同之处。

    4.3K50

    linux内核1-GNU汇编入门_X86-64&ARM

    1 引言 为了阅读Linux内核源代码,是需要一些汇编语言知识的。...因为与架构相关的代码基本上都是用汇编语言编写的,所以掌握一些基本的汇编语言语法,能够更好地理解Linux内核源代码,甚至可以对各种架构的差异有一个更深入的理解。...所以,本文就从常用指令出发,基于GNU汇编语言格式,对x86_64架构和ARM架构下的指令做了一个入门介绍。学习完这篇文章,希望可以对汇编有一个基本的理解,并能够解决大部分问题。...GNU汇编对大小写不敏感,但是为了统一,我们一般使用大写。 汇编代码编译成可执行文件,可以参考下面的代码编译示例: % gcc hello.s -o hello % ....AT&T语法-Intel语法 GNU使用传统的AT&T语法,许多类Unix操作系统使用这种风格,与DOS和Windows上用的Intel语法是不同的。

    4.8K20

    linux udp编程_linux中socket编程

    在前面的文件中,我们介绍了linux网络编程中与IP相关的知识和常用的函数总结,本文针对具体的UDP通信,来详细的介绍UDP通信的使用,包括UDP通信中的点对点通信,多播,广播等。...一、UDP通信中服务端和客户端的基本编程框架 与TCP相比较,UDP是面向无连接的通信方式,不需要connect、listen、accept等函数操作,不用维护TCP的连接、断开等状态。...3.2、组播的使用 组播在基本UDP编程框架的基础上,使用setsockopt()函数和getsockopt()函数来实现,需要设置IP层的相关参数(第二个参数为 IPPROTO_IP),其原型如下:...设置组播的默认默认网络接口,会从给定的网络接口发送,另一个网络接口会忽略此数据 选项IP_ADD_MEMBERSHIP和IP_DROP_MEMBERSHIP:加入或者退出一个组播组其参数为一个结构体 使用组播的一个基本编程流程如下

    11K10

    GNU GPL介绍「建议收藏」

    怎样在程序中使用GNU许可证 不管使用哪种许可证,使用时须要在每一个程序的源文件里加入两个元素:一个版权声明和一个复制许可声明。说明该程序使用GNU许可证进行授权。...SMBus 2.0 support by Mark Studebaker and Jean Delvare <khali@linux-fr.org...用于GNU计划。 它以GNU Emacs、GDB、GCC的许可证的早期版本号为蓝本。 这些许可证都包括有一些GPL的版权思想。但仅针对特定的程序。斯托曼的目标就是创造出一种四海之内皆可使用的许可证。...版本号好LGPL版本号2.1公布时不再同样,而LGPL也被重命名为GNU宽通用公共许可证(Lesser General Public License)以体现GNU哲学观。...声明 这是一份GNU通用公共授权非正式的中文翻译。

    87510

    GNU 核心实用程序简介

    许多 Linux 系统管理员最基本和常用的工具主要包括在两套实用程序中:GNU 核心实用程序(coreutils)和 util-linux。...GNU coreutils 要了解 GNU 核心实用程序的起源,我们需要乘坐时光机进行一次短暂的旅行,回到贝尔实验室的 Unix 早期。...内核并不提供命令或任何类型的命令 shell,比如 Bash,它本身是没有任何用处的,因此,Linus 使用了免费提供的 GNU 核心实用程序,并为 Linux 重新编译了它们。...这些命令和其他许多不在 GNU 核心实用程序中的命令可以在 util-linux 中找到。 util-linux util-linix 实用程序包中包含了许多系统管理员常用的其它命令。...总结 这两个 Linux 实用程序的集合,GNU 核心实用程序和 util-linux,共同提供了管理 Linux 系统所需的基本实用程序。

    56910
    领券