作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要打印出这个:温度=“温度”@“日期/时间”,其中“日期/时间”是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/
我是一名优秀的程序员,十分优秀!