当前位置: 首页 > 面试题库 >

如何在Linux中找到C编程语言的头文件?

沈翰
2023-03-14
问题内容

当我用Linux编写C程序,然后使用gcc编译它们时,我总是对那些头文件在哪里感到好奇。例如,在哪里stdio.h。更一般地说,在哪里stdbool.h

我想知道的不仅是它在哪里,还有如何获得这些地方,例如,使用shell命令或使用C编程语言。


问题答案:

gcc -H ...将打印每个包含文件的完整路径,作为常规编译的副作用。-fsyntax- only另外使用使其不创建任何输出(它仍然会告诉您程序是否有错误)。示例(Linux,gcc-4.7):

$ cat > test.c
#include <stdbool.h>
#include <stdio.h>
^D
$ gcc -H -fsyntax-only test.c
. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdbool.h
. /usr/include/stdio.h
.. /usr/include/features.h
... /usr/include/x86_64-linux-gnu/bits/predefs.h
... /usr/include/x86_64-linux-gnu/sys/cdefs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/gnu/stubs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
.. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.. /usr/include/x86_64-linux-gnu/bits/types.h
... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/bits/typesizes.h
.. /usr/include/libio.h
... /usr/include/_G_config.h
.... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.... /usr/include/wchar.h
... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdarg.h
.. /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
.. /usr/include/x86_64-linux-gnu/bits/sys_errlist.h

每行开头的点表示嵌套的深度#include



 类似资料:
  • 本文向大家介绍linux下c语言的多线程编程,包括了linux下c语言的多线程编程的使用技巧和注意事项,需要的朋友参考一下 我们在写linux的服务的时候,经常会用到linux的多线程技术以提高程序性能  多线程的一些小知识: 一个应用程序可以启动若干个线程。 线程(Lightweight Process,LWP),是程序执行的最小单元。 一般一个最简单的程序最少会有一个线程,就是程序本身,也就是

  • 本文向大家介绍Linux下C语言实现C/S模式编程,包括了Linux下C语言实现C/S模式编程的使用技巧和注意事项,需要的朋友参考一下 由标题可知,这篇文章主要讲如何用C语言实现一个C/S模式的程序。 主要功能:时间回送。 客户机发出请求,服务器响应时间,并返回服务器时间,与客户机进行同步。 废话不多说,下面直接贴出源代码。 代码如下: 主要过程 1.建立源程序,输入源代码。 2.打开一个终端,编

  • C类语言破解 1、bp MessageBoxA(W)(断对话框)—Ctrl+N 2、Point-H法 3、bp GetDlgItem/GetWindowTextA(W)/GetWindowTextLengthA(W) (断输入框) 4、字符串法—插件/搜索所有参考文本

  • 本文向大家介绍C语言编写Linux守护进程实例,包括了C语言编写Linux守护进程实例的使用技巧和注意事项,需要的朋友参考一下 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进 程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进

  • 我有一个c模块: 我做了File fileName; 我有一个初始化函数: 所以我做了fileName=filename;我这样做的原因是我有另一个函数,我称为start(): 一开始我有文件名,但它没有找到它,所以我想用fileName代替。但我现在得到一些错误: 在这一行:fileName=fileName;在=符号上,我得到红线错误: 错误1错误C2440:“=”:无法从“常量字符*”转换为

  • 问题内容: 我的一个项目有一个问题。 我一直在尝试找到一个记录良好的使用共享内存的示例,但没有成功。 基本上情况是,当用户启动程序时,我需要在共享内存中存储两个值: current_path( 它是一个 char )_ 和 file_name( 它也是 _char ) 。 根据命令参数,将启动一个新进程,该进程需要读取和修改存储在共享内存中的 current_path 变量,而 file_name