c - 如何在 printf(C 语言)中使用系统 ("date")?

标签 c date datetime

我需要打印出这个: 温度=“温度”@“日期/时间”,其中“日期/时间”是Linux“date”命令返回的日期和时间。

当我在程序中使用系统(“日期”)时,它会立即显示它。有没有办法避免这种情况发生?

这是我到目前为止的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>

#define FREQUENCY 5
#define MIN -10
#define MAX 35

int main()
{
    time_t t;

    /*
    * Initialize random number generator
    */
    srand((unsigned) time(&t));

    /*
    * Print random values between -10 and +35°C
    */
    while(1)
    {
            double random = ((double)rand() * (MAX-MIN))/(double)RAND_MAX+MIN;
            printf("Temperature = %1.2f @ %d\n", random, system("date"));
            fflush(stdout);
            sleep(FREQUENCY);
    }
}

最佳答案

如果你想执行一个命令并获取它的输出,你需要使用popen(),通常你需要创建一个管道并重定向程序的输出,popen( ) 基本上不需要太多努力就可以为您做到这一点

#include <stdio.h>

int
main(void)
{
    FILE *pipe;
    char buffer[100];

    pipe = popen("date", "r");
    if (pipe == NULL)
        return -1;
    while (fgets(buffer, sizeof(buffer), pipe) != NULL)
        fprintf(stdout, "%s", buffer);
    pclose(pipe);
    return 0;
}

关于c - 如何在 printf(C 语言)中使用系统 ("date")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35531670/

相关文章:

c++ - C 风格字符串差异 : C/C++

java - 如何从给定的日期集中查找每个月的最少日期

c# - 通过添加 UTC 偏移将 Twitter DateTime 转换为本地时间

c - 以通配符作为参数运行程序

c - 使用结构体指针作为函数参数时得到错误的值

sql - 需要计算截止日期的年月日

java - if 语句查询问题,eclipse 说 "dead code"

python - 将数据帧列转换为日期时间以进行重新映射

java - 如何android + sqlite +日期+时间?需要日期/时间操作

有人可以解释什么是强更新并举例说明吗?