首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个C代码在linux上工作,而在没有cygwin的Windows上却不能工作?

为什么这个C代码在linux上工作,而在没有cygwin的Windows上却不能工作?
EN

Stack Overflow用户
提问于 2018-11-10 12:25:04
回答 1查看 218关注 0票数 0

我有一个C代码。

代码语言:javascript
复制
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main()
{
    int a = 1;
    while( a <= 5 )
    {

    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    printf("Normal prinf funcation call from C\n");
    fprintf(stdout, "STDOUT, Got on STDOUT from C. - now: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
    fprintf(stderr, "STDERR, Got in STDERR from C. - now: %d-%d-%d %d:%d:%d\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
    sleep(1);
    a ++;
    }
    return 0;
}

On Linux我用gcc编译了这个C代码。生成一个二进制文件。

在执行二进制文件时,我将以下内容视为输出;

代码语言:javascript
复制
Normal prinf funcation call from C
STDOUT, Got on STDOUT from C. - now: 2018-11-10 17:44:38
STDERR, Got in STDERR from C. - now: 2018-11-10 17:44:38
Normal prinf funcation call from C
STDOUT, Got on STDOUT from C. - now: 2018-11-10 17:44:39
STDERR, Got in STDERR from C. - now: 2018-11-10 17:44:39
Normal prinf funcation call from C
STDOUT, Got on STDOUT from C. - now: 2018-11-10 17:44:40
STDERR, Got in STDERR from C. - now: 2018-11-10 17:44:40
Normal prinf funcation call from C
STDOUT, Got on STDOUT from C. - now: 2018-11-10 17:44:41
STDERR, Got in STDERR from C. - now: 2018-11-10 17:44:41
Normal prinf funcation call from C
STDOUT, Got on STDOUT from C. - now: 2018-11-10 17:44:42
STDERR, Got in STDERR from C. - now: 2018-11-10 17:44:42

在windows机器上,我使用cygwingcc将相同的C代码编译成.exe文件,然后尝试在cmd中运行它(不是cygwin,工作在cygwin上)。屏幕上什么都不印。

在Linux和Windows上,STDOUT/STDERR之间有什么重大区别吗?

如何将.exe文件打印到命令提示符(至少printf调用应该有效)?

P.S:我在Linux和Windows上都使用以下命令来生成二进制/exe。

代码语言:javascript
复制
gcc C_code.c -o binary
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-10 12:31:53

Cygwin是一个与POSIX兼容的环境。当您在Cygwin中编译某些内容时,它意味着在Cygwin中运行。

您需要的是GCC到Windows的端口,称为MinGW。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53238925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档