unix高级编程-UNIX环境高级编程 times() 疑问

问题描述

UNIX环境高级编程 times() 疑问
  1. 例程
 int main(int argc, char *argv[])
{
        clock_t s_clk,e_clk;
        struct tms s_tms,e_tms;

        s_clk = times(&s_tms);
        system("ls /dev");
        system("date");
        sleep(1);
        e_clk = times(&e_tms);
        printf("e_clk %ld - s_clk %ld = %ld
",e_clk , s_clk,e_clk-s_clk);
// pr_time(1,s_tms,e_tms);

        printf("user time e_tms %ld - s_tms %ld = %ld
",
                        e_tms.tms_utime,s_tms.tms_stime,(e_tms.tms_utime - s_tms.tms_utime));
        printf("system time e_tms %ld - s_tms %ld = %ld
",
                        e_tms.tms_stime,s_tms.tms_stime,(e_tms.tms_stime - s_tms.tms_stime));

        return 0;
}

./a.out
2016年 04月 03日 星期日 15:40:10 CST
e_clk 1742131978 - s_clk 1742131878 = 100
user time e_tms 0 - s_tms 0 = 0
system time e_tms 0 - s_tms 0 = 0

时间差为什么还是 0.

解决方案

楼主要不sleep久一点试试。
如果一个进程 的运行时间很短,短到和系统的计时器间隔一个数量级,用这种方法测出来的结果必然是不够精确的,头尾都有误差。

解决方案二:

UNIX环境高级编程----文件属性及权限

时间: 2016-06-13

unix高级编程-UNIX环境高级编程 times() 疑问的相关文章

UNIX环境高级编程中的apue.h

/************** * *apueerror.h * *************/ #include <apue.h> #include <stdio.h> #include <errno.h> /* for definition of errno */ #include <stdarg.h> /* ISO C variable aruments */ static void err_doit(int, int, const char *, va

ubuntu-最近在学习Unix 环境高级编程,配置环境时遇到了些问题

问题描述 最近在学习Unix 环境高级编程,配置环境时遇到了些问题 最近再看APUE(UNix 环境高级编程)的第三版,照着教程在中配置环境.也就是想要运行书中的源码,则要安装 libbsd-dev包,而每次安装这个包时,都如上报错,请问各位大虾,该怎么解决呢? 解决方案 你好, 类似的问题我也遇到过 ubuntu下apt-get install安装软件, 报"无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系",今天终于找到解决方法了. 一般出现这种情况的原

unix环境高级编程-UNIX环境高级编程源代码对应

问题描述 UNIX环境高级编程源代码对应 今天开始学习UNIX环境高级编程,书中的源代码下载到了,但是发现根本不是按章节来的,找起来是相当的费时间,有哪位大神用过后知道他们的对应关系么,比如1-1对应ls1.c这样,真是万分感激,造福大家啊!

Mac OS X 10.8 中编译APUE(Unix环境高级编程)的源代码过程_C 语言

最近在温习APUE(<unix环境高级编程>),以前都是在linux下搞,现在打算在自己机器弄下,于是google了下,把编译的事情搞定了,修改了一些教程的一些错误,比如下载链接之类的. 1.下载源文件,我这里是第二版,貌似第三版的英文版出来了... 复制代码 代码如下: wget http://www.apuebook.com/src.2e.tar.gz 2.解压 复制代码 代码如下: tar zxf src.2e.tar.gz 3.修改些东西 复制代码 代码如下: cd apue.2e/

《UNIX环境高级编程(第3版)》——2.2 UNIX标准化

2.2 UNIX标准化 2.2.1 ISO C 1989年下半年,C程序设计语言的ANSI标准X3.159-1989得到批准.此标准被也采纳为国际标准ISO/IEC 9899:1990.ANSI是美国国家标准学会(American National Standards Institute)的缩写,它是国际标准化组织(International Organization for Standardization,ISO)中代表美国的成员.IEC是国际电子技术委员会(International Ele

UNIX环境高级编程---标准I/O库

前言:我想大家学习C语言接触过的第一个函数应该是printf,但是我们真正理解它了吗?最近看Linux以及网络编程这块,我觉得I/O这块很难理解.以前从来没认识到Unix I/O和C标准库I/O函数压根不是一码事.Unix I/O也叫低级I/O,也叫Unbuffered I/O,是操作系统内核部分,也是系统调用:而C标准I/O函数相对也成Buffered I/O,高级I/O,一般是为了效率考虑对这些系统调用的封装.以前使用getchar()经常为输入完后的回车而出错.那是不理解标准I/O实现时的

UNIX环境高级编程:主线程与子线程的退出关系

我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1.  主线程等待新线程先结束退出,主线程后退出.正常执行. 示例代码: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/types.h> pthread_t ntid;//线程ID void print

《UNIX环境高级编程》第一章总结

第一章 UNIX 技术知识 unix的口令文件一般情况下是/etc/passwd文件 口令文件中的登录项一般有7个以冒号进行分割的字段组成:登录名,加密扣了,数字用户ID(224),数字组ID(20),注释字段,起始目录(比如:/home/rollen),以及shell程序(/bin/ksh). unix目录的起始目录叫做root,他的名字是一个字符/ stat和fstat函数返回一个包含所有文件属性的信息结构 不能出现在文件名中的字符有:斜线(/)和空操作符null 以斜线开头的路径名叫做绝对

《C语言编程魔法书:基于C11标准》——第3章 C语言编程的环境搭建3.1 Windows操作系统下搭建C语言编程环境

第3章 C语言编程的环境搭建 我们在第2章讲述了学习C语言所必需的一些预备知识.本章将给大家介绍常用桌面操作系统下的C语言环境搭建.这里所讲述的C语言编译器以及集成开发环境(IDE)都是可合法免费下载的,本书不鼓励各位使用盗版或破解软件,所以下面会列出下载这些合法免费软件的官方链接,大家把编程环境搭建完之后即可上机实践编程. 3.1 Windows操作系统下搭建C语言编程环境 Windows操作系统下默认不自带任何C语言编译器,大家必须从网上下载自己所需要的C语言编译器.如果各位想通过C语言开发