无限循环不起作用,用gcc编译

时间:2018-01-31 19:18:31

标签: c gcc

当我为我的代码添加无限循环时,代码无法正常工作。它只是运行而且什么都不做。

例如,此代码不会打印public static String getKernelVersion() { try { Process p = Runtime.getRuntime().exec("uname -a"); InputStream is = null; if (p.waitFor() == 0) { is = p.getInputStream(); } else { is = p.getErrorStream(); } BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = br.readLine(); Log.i("Kernel Version", line); br.close(); return line; } catch (Exception ex) { return "ERROR: " + ex.getMessage(); } }

"hello"

但是此代码打印" hello"。

#include <stdio.h>

int main(){
    printf("hello");
    while(1){

    }

    return 0;
}

如何在代码中添加#include <stdio.h> int main(){ printf("hello"); //while(1){ //} return 0; } 循环?

2 个答案:

答案 0 :(得分:4)

  

例如在此代码中,不打印“hello”。

这是因为缓冲

您可以在fflush(stdout)之后调用printf()以刷新缓冲区:

#include <stdio.h>

int main(){
    printf("hello");
    fflush(stdout);
    while(1){

    }

    return 0;
}

在第二种情况下,缓冲区在程序终止时刷新。

答案 1 :(得分:2)

如果你想要的话,首先是打印&#34;你好&#34;无限,然后你需要这样的东西。它将打印和刷新放在无限循环中。

#include <stdio.h>

int main()
{
    while(1)
    {
        printf("hello");
        fflush(stdout);
    }
    return 0;
}