小编CJD*_*CJD的帖子

在c中捕获ping的输出

如何通过管道立即捕获ping命令的输出?

这是我的代码:

int main ()
{
    FILE *cmd = popen ( "ping -c 3 google.com | grep icmp", "r" );//ping google
    char *s = malloc ( sizeof ( char ) * 200 );
    while ( 1 )
    {
            fgets ( s, sizeof ( char )*200, cmd );
            printf ( "%s", s);//show outcome
            if ( strstr ( s, "icmp_req=3" ) != 0 )
                    break;
    }
    pclose ( cmd );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

程序完成后,将同时显示输出.但我想在程序执行时立即读取输出.

c linux pipeline

7
推荐指数
2
解决办法
5932
查看次数

如何在Linux上使gtkwindow背景透明?

我想让背景透明,只有窗口小部件可见.

这是我的代码:

#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
    gtk_init (&argc, &argv);
    GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    // Title
    gtk_window_set_title(GTK_WINDOW (window), "Transparency");
    //gtk_window_set_opacity(GTK_WINDOW(window), 0.5);

    // CSS
    GtkCssProvider *provider = gtk_css_provider_new();
    GdkDisplay *display = gdk_display_get_default();
    GdkScreen *screen = gdk_display_get_default_screen(display);
    gtk_style_context_add_provider_for_screen(screen, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
    gtk_css_provider_load_from_data(GTK_CSS_PROVIDER (provider),
                                    "GtkWindow {\n"
                                    "   background-color: rgba(0,0,0,0);\n"
                                    "}\n",
                                     -1, NULL);
    g_object_unref (provider);

    // Window
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_resize(GTK_WINDOW(window), 400, 300);
    gtk_widget_show_all(window);

    gtk_main();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我用gtk3.程序执行时,它只显示黑色.CSS(或rgba)函数不起作用.我尝试使用gtk_window_set_opacity(),但它也只显示黑色.如何修复代码?

gtk gtk3

6
推荐指数
2
解决办法
7769
查看次数

标签 统计

c ×1

gtk ×1

gtk3 ×1

linux ×1

pipeline ×1