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

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

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

如下面的:

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

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

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

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

root@DK:/usr/include# ls unistd.h
-rw-r--r-- 1 root root 42100 1月 15 11:16 unistd.h
root@DK:/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);
}

输出结果:

daokr@DK:~/myfile$ ./process
hello world from process ID 15114
目前登录用户: d
UID:1000 GID:1000
daokr@DK:~/myfile$

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

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

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

  1. iOS 11开发教程(三)运行第一个iOS 11程序

    iOS 11开发教程(三)运行第一个iOS 11程序 运行iOS11程序 创建好项目之后,就可以运行这个项目中的程序了.单击运行按钮,如果程序没有任何问题的话,会看到如图1.6和1.7的运行效果. 图 ...

  2. 运行第一个Node.js程序

    初学Node.js,萌新一枚.感觉Node.js挺不错的,从基础开始一步一步来,加油吧! 我们来使用Node.js的express来运行第一个程序helloworld: 在命令提示符键入express ...

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

    要说最近两天程序猿之间最喜欢吹水的事是什么?那绝壁是甲骨文要放弃Java!简直做梦都要笑醒!由于公司的产品线全面转向Java,最近几个月也一直在苦学Java技术.已经默默决定了,如果消息证实是真的,我 ...

  4. 运行第一个.net core程序

    前置条件 ubuntu已安装.net core运行环境 分6步 mkdir netcore 创建一个项目文件夹 cd netcore   进入该文件夹 dotnet new  new命令 用于创建一个 ...

  5. unix ourhdr.h myerr.h

    //在学UNIX环境高级编程时把下面两个头文件与源文件放在同一个文件下就可以正常编译了,我的是在ubuntu 12.04环境下,第一个程序编译和运行成功了,希望对大家有帮助(我已经根据网上的资料修改好 ...

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

    在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...

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

        作者:张昌昌 在一些情况下,往往须要同一时候启动多个终端并让终端运行自己主动运行对应的命令,进而达到提高操作效率的目的.在linux下gnome-terminal启动终端命令, gnome-t ...

  8. iOS_02_第一个C语言程序(理解编译、连接、运行)

    一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用 ...

  9. 解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题

    解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题 一.前言 最近在做一点小的实验,用到了Scala,spark这些东西,于是在Linux平台上来完成,结果一个 ...

随机推荐

  1. Android--Facebook Login without LoginButton

    1.引入facebook 工程lib,在Manifest中声明com.facebook.LoginActivity,facebook_app_id <activity android:name= ...

  2. net core quartz调度 warp打包 nssm部署到windowsservice

    介绍下一款vue.js实现的基于core2.1 quartz.net调度框架,独立部署不依赖数据库,只需要实现不同业务接口,配置调度时间即可 github:https://github.com/cq- ...

  3. go 计算文件行

    package main import ( "bufio" "fmt" "os" ) func main() { //判断命令行参数,小于两 ...

  4. JS获取时间差

    Date.parse(String string)转为毫秒数进行比较

  5. docker-compose的一些服务一直是restarting

    1.查看日志 docker logs jenkins(镜像名字) 1.1 可能权限问题 1.2可能内存问题

  6. NameError: name “ ” is not defined

    NameError: name “ ” is not defined 问题一:name ‘name’ is not defined "name"两端是双下划线"_&quo ...

  7. Delphi对于文件的读写操作

    delphi文件操作 取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Functi ...

  8. 微信小程序分享小程序码的生成,多参数以及参数的获取

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 官方文档地址:https://developers.weixin.qq.com/minipro ...

  9. 基于NFS的PV动态供给(StorageClass)

    一.简介 PersistentVolume(PV)是指由集群管理员配置提供的某存储系统上的段存储空间,它是对底层共享存储的抽象,将共享存储作为种可由用户申请使的资源,实现了“存储消费”机制.通过存储插 ...

  10. 反射,内置方法,__str__ __repr__

    反射 反射用到的mmp模块 def wahaha():print('wahaha') class QQxing: def __init__(self,name): self.name = name d ...