搞清楚ourhdr.h是什么及运行第一个UNIX C程序
好多人开始学;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程序的更多相关文章
- iOS 11开发教程(三)运行第一个iOS 11程序
iOS 11开发教程(三)运行第一个iOS 11程序 运行iOS11程序 创建好项目之后,就可以运行这个项目中的程序了.单击运行按钮,如果程序没有任何问题的话,会看到如图1.6和1.7的运行效果. 图 ...
- 运行第一个Node.js程序
初学Node.js,萌新一枚.感觉Node.js挺不错的,从基础开始一步一步来,加油吧! 我们来使用Node.js的express来运行第一个程序helloworld: 在命令提示符键入express ...
- .NET Core初体验 - 在Mac下运行第一个Web示例程序
要说最近两天程序猿之间最喜欢吹水的事是什么?那绝壁是甲骨文要放弃Java!简直做梦都要笑醒!由于公司的产品线全面转向Java,最近几个月也一直在苦学Java技术.已经默默决定了,如果消息证实是真的,我 ...
- 运行第一个.net core程序
前置条件 ubuntu已安装.net core运行环境 分6步 mkdir netcore 创建一个项目文件夹 cd netcore 进入该文件夹 dotnet new new命令 用于创建一个 ...
- unix ourhdr.h myerr.h
//在学UNIX环境高级编程时把下面两个头文件与源文件放在同一个文件下就可以正常编译了,我的是在ubuntu 12.04环境下,第一个程序编译和运行成功了,希望对大家有帮助(我已经根据网上的资料修改好 ...
- vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...
- linux下通过命令启动多个终端运行对应的命令和程序
作者:张昌昌 在一些情况下,往往须要同一时候启动多个终端并让终端运行自己主动运行对应的命令,进而达到提高操作效率的目的.在linux下gnome-terminal启动终端命令, gnome-t ...
- iOS_02_第一个C语言程序(理解编译、连接、运行)
一.开发工具的选择 1. 可以用来写代码的工具:记事本.ULtraEdit.Vim.Xcode等. 2. 选择XCode的原因:苹果公司官方提供的开发利器.简化开发的工程.有高亮显示功能. 3. 使用 ...
- 解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题
解惑:在Ubuntu18.04.2的idea上运行Scala支持的spark程序遇到的问题 一.前言 最近在做一点小的实验,用到了Scala,spark这些东西,于是在Linux平台上来完成,结果一个 ...
随机推荐
- shell分享
shell脚本分享 一.介绍shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...
- C# 连接SQLServer数据库自动生成model类代码
Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading ...
- BUAAOO-Third-Summary
目录 从DBC到JML SMT solver 使用 JML toolchain的可视化输出 和我的测试结果 规格的完善策略 架构设计 debug情况 心得体会 一.从DBC到JML 契约式设计(Des ...
- 【Linux内核】CPU和线程
首先明确一个概念,Linux系统中甚至没有真正的线程.不过,可以认为Linux是系统的线程是内核线程,所有调度是基于线程的. 1.线程分类 一个进程由于其运行空间的不同, 从而有内核线程和用户进程的区 ...
- Linux下使用nextcloud搭建个人网盘
市面上有那么多的网盘服务提供商,为什么还要自己搭建网盘呢?主要有以下原因: 免费的网盘都有种种限制,要么不限速容量小(onedriver,google driver),要么容量大限速(百度云) 付费网 ...
- 解决此报错:Cannot create Woodstox XMLInputFactory: java.lang.NoClassDefFoundError: com/ctc/wstx/stax/WstxInput
最近在研究webservice服务的技术,可是写完webservice例子后,项目正常启动,但是在输入url地址后报如下的错误: Cannot create Woodstox XMLInputFact ...
- 各种GAN的学习和总结
GAN: https://www.cnblogs.com/kk17/p/10046884.html WGAN: https://www.cnblogs.com/Allen-rg/p/10305125. ...
- 开发环境wamp3.06 + Zend studio 12 调试配置
<?php $fileName = "php大师.test.php"; //补充程序,显示文件名(不包括扩展名) $start = strrpos($fileName, &q ...
- Flink源码阅读(二)——checkpoint源码分析
前言 在Flink原理——容错机制一文中,已对checkpoint的机制有了较为基础的介绍,本文着重从源码方面去分析checkpoint的过程.当然本文只是分析做checkpoint的调度过程,只是尽 ...
- css定位基础知识
标题:css定位 地址:https://www.w3school.com.cn/css/css_positioning.asp