搞清楚ourhdr.h是什么及运行第一个UNIX C程序

好多人开始学;UNIX 环境高级编程这本书时;看到书里面说的头文件ourhdr.h而找不到她在哪里;而且无法开始继续学习;其实这个就是系统的内核标准头文件;

而她的位置在:/usr/include/unistd.h 这里;

其实UNIX系统下面的目录:/usr/include 目录;放着好多系统要用到的头文件;目的就是让我们开发者调用系统环境已经开发好的函数库;而不用再重新写这些函数;

如下面的:

getuid() 获取当前登录用户的用户id

getpid() 获取当前登录用户的用户组id

这些函数已经在unistd.h 里面声明而且已经系统给实现了。

而ourhdr.h在书里面是指 我们用户系统环境的标准头文件;这下大家应该明白了。

[email protected]:/usr/include# ls unistd.h
-rw-r--r-- 1 root root 42100 1月  15 11:16 unistd.h
[email protected]:/usr/include# pwd
/usr/include

下面是我们的第一个c程序;她里面的 getuid(), getgid() 函数;已经在 我们的标准unistd.h 头文件里声明了;所以可以执行调用;

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void){
    printf("hello world from process ID %d\n",getpid());
    char *p = getlogin();
    printf("目前登录用户: %c \n",*p);
    printf("用户ID:%d 当前用户组ID:%d \n",getuid(), getgid());
    exit(0);
}

输出结果:

[email protected]:~/myfile$ ./process
hello world from process ID 15114
目前登录用户: d
UID:1000 GID:1000
[email protected]:~/myfile$ 

这个是一个好的开头;明白了;linux 系统内部头文件在什么位置;下面就举一反三的学习 UNIX环境编程这本书就慢慢开始了~~

希望和我一起开始学习UNIX编程!我这里有PDF格式的;UNIX环境高级编程中文版.pdf 下载;有需要的可以联系我;我送你;一起学习!

原文地址:https://www.cnblogs.com/wanglijun/p/8872579.html

时间: 2024-10-09 06:32:08

搞清楚ourhdr.h是什么及运行第一个UNIX C程序的相关文章

.NET Core初体验 - 在Mac下运行第一个Web示例程序

要说最近两天程序猿之间最喜欢吹水的事是什么?那绝壁是甲骨文要放弃Java!简直做梦都要笑醒!由于公司的产品线全面转向Java,最近几个月也一直在苦学Java技术.已经默默决定了,如果消息证实是真的,我马上烧掉那本最近在啃的<Spring in action>- 之前也用Xamarin Studio写一些C#的小东西,这次看到.NET Core这么如火如荼的开源着,并且可用于生产环境,我也来凑下热闹. 0. 安装Homebrew Homebrew简称"brew"是Mac下的包

运行第一个.net core程序

前置条件 ubuntu已安装.net core运行环境 分6步 mkdir netcore 创建一个项目文件夹 cd netcore   进入该文件夹 dotnet new  new命令 用于创建一个新的控制台应用程序 dotnet restore  分析 project.json 文件, 下载依赖并返回结果 dotnet build  编译项目 dotnet run  运行项目 [email protected]:~/firstnetcore# mkdir netcore[email prot

Ubuntu 12.04下在Eclipse IDE for C/C++ Developers中运行C语言的GTK程序

哈哈哈--终于搞定了GTK程序的编译与运行,纠结了近一个月的问题终于得以解决,痛快!近一个月来,不断百度.发博文.百度知道提问.csdn提问--经常发私信.评论博文麻烦大牛,比如sunny2038.轻飘风扬.Sun1956--在此对所有帮助我的人表示感谢! 特别感谢csdn的sunny2038,他的博文<Windows和Ubuntu11.10在Eclipse中配置C和GTK>和热心回复给了我很大的帮助! Neo E. Cai的博文<Ubuntu下GTK的安装.编译和测试>对我具有非

ios-(2)第一个C语言程序(理解编译、连接、运行)

一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用XCode新建一个C程序的源代码文件(扩展名为.c或者.C) # 开发XCode # 新建文件 # 选择文件类型 .c 二.代码编写 1.程序结构 * C程序的结构:由函数组成 # 任何一个C语言程序都市有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为"函数&q

【DirectX11-Tutorial】运行第一个win32程序A Primer of Basic Windows

DirectX11-Tutorial 本系列主要参考此博客的文章,同时会加上一点个人实践过程. ========================================== 分割线 ========================================== <span style="font-family:Microsoft YaHei;font-size:14px;">#include <stdio.h> // include the sta

vc++ 在程序中运行另一个程序的方法

在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂.    WinExec 两个参数,前一个指定路径,后一个指定显示方式.    ShellExecute 可以指定工作目录,并且还可以寻找文件

linux下通过命令启动多个终端运行对应的命令和程序

    作者:张昌昌 在一些情况下,往往须要同一时候启动多个终端并让终端运行自己主动运行对应的命令,进而达到提高操作效率的目的.在linux下gnome-terminal启动终端命令, gnome-terminal -x 后跟运行的命令,bash是linux启动子shell的命令,bash -c "所要运行的命令串",通过嵌套gnome-terminal -x bash -c ......,表示启动新终端, 并在新启动的终端里运行bash -c,即启动子shell,由子shell运行-

运行ELF文件的应用程序

8.2.3  运行ELF格式的应用程序 首先我们需要提供一些与ELF格式有关的宏定义. 代码8-7 #define ELFCLASSNONE    0 #define ELFCLASS32      1 #define ELFCLASS64      2 #define CHECK_ELF_CLASS(p)              ((p)->e_ident[4]) #define CHECK_ELF_CLASS_ELFCLASS32(p)\ (CHECK_ELF_CLASS(p)==ELFC

在64位的linux中运行32位的应用程序

常规做法,先添加32bit架构: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 然后,你再安装或者直接运行你的32位程序.