⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copyfile.c

📁 linux下的文件复试函数
💻 C
字号:
#include<stdio.h>
#include</usr/src/linux-2.6.23.1/include/asm/unistd.h>
#include<errno.h>
#include<sys/syscall.h>
#include <stdlib.h>
#include <string.h>
#include <gtk/gtk.h>

char sfilename[50];
char dfilename[50];

/*----------------enters_callback------------------*/
/*--------------------------------------------------*/
void enters_callback( GtkWidget *widget,GtkWidget *entry )
{
    const char *entry_text;
    entry_text = gtk_entry_get_text (GTK_ENTRY (entry));
    strcpy(sfilename,entry_text);
    
}

/*----------------enterd_callback------------------*/
/*--------------------------------------------------*/
void enterd_callback( GtkWidget *widget,GtkWidget *entry )
{
    const char *entry_text;
    entry_text = gtk_entry_get_text (GTK_ENTRY (entry));
    strcpy(dfilename,entry_text);
}

/*----------------button1_callback-----------------*/
/*--------------------------------------------------*/
void button1_callback( GtkWidget *widget,gpointer   data)
{
    char *buf[1024];
    int done;
    GtkWidget *dialog; 

    printf("sfilename:\t%s\n",sfilename);
    printf("dfilename:\t%s\n",dfilename);
    done=syscall(325,sfilename,dfilename,buf);
    if(done==1)
    {
        dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,"复制成功,请返回!");
        gtk_window_set_title(GTK_WINDOW(dialog),"复制完成");
    }
    else
    {
        dialog=gtk_message_dialog_new(NULL,GTK_DIALOG_DESTROY_WITH_PARENT,GTK_MESSAGE_INFO,GTK_BUTTONS_OK,"复制失败,请检查文件名");
        gtk_window_set_title(GTK_WINDOW(dialog),"复制失败");
    }
    gtk_dialog_run(GTK_DIALOG(dialog));
   gtk_widget_destroy(dialog);
    return;
}

/*----------------------main-----------------------*/
/*--------------------------------------------------*/
int main( int argc,char *argv[] )
{

   GtkWidget *window;
   GtkWidget *vbox,*hbox;
   GtkWidget *entrys;
    GtkWidget *entryd;
    GtkWidget *label1;
    GtkWidget *label2;
   GtkWidget *button;
    GtkWidget *button1;
   gtk_init (&argc, &argv);

  /* 设置窗口*/
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_size_request (GTK_WIDGET (window), 300, 150);
   gtk_window_set_title (GTK_WINDOW (window), "文件复制");
   g_signal_connect (G_OBJECT (window), "destroy",G_CALLBACK (gtk_main_quit), NULL);
   g_signal_connect_swapped (G_OBJECT (window), "delete_event",G_CALLBACK (gtk_widget_destroy), window);

   vbox = gtk_vbox_new (FALSE, 0);
   gtk_container_add (GTK_CONTAINER (window), vbox);
   gtk_widget_show (vbox);

    /* 设置标签*/
    label1 = gtk_label_new ("源文件名:");
    gtk_box_pack_start (GTK_BOX (vbox), label1, FALSE, FALSE, 0);
    gtk_widget_show (label1);

    
    /* 设置文本输入框*/
   entrys = gtk_entry_new ();
   gtk_entry_set_max_length (GTK_ENTRY (entrys), 50);
   gtk_entry_set_text (GTK_ENTRY (entrys), "sourse path");
   gtk_editable_select_region (GTK_EDITABLE (entrys), 0, GTK_ENTRY (entrys)->text_length);
    g_signal_connect (G_OBJECT (entrys), "changed",G_CALLBACK (enters_callback),entrys);
   gtk_box_pack_start (GTK_BOX (vbox), entrys, TRUE, TRUE, 0);
   gtk_widget_show (entrys);

    /* 设置标签*/
    label2 = gtk_label_new ("目标文件名:");
    gtk_box_pack_start (GTK_BOX (vbox), label2, FALSE, FALSE, 0);
    gtk_widget_show (label2);
    
    /* 设置文本输入框*/
    entryd = gtk_entry_new ();
   gtk_entry_set_max_length (GTK_ENTRY (entryd), 50);
   gtk_entry_set_text (GTK_ENTRY (entryd), "direction path");
    g_signal_connect (G_OBJECT (entryd), "changed",G_CALLBACK (enterd_callback),entryd);
   gtk_box_pack_start (GTK_BOX (vbox), entryd, TRUE, TRUE, 0);
   gtk_widget_show (entryd);

   hbox = gtk_hbox_new (FALSE, 0);
   gtk_container_add (GTK_CONTAINER (vbox), hbox);
   gtk_widget_show (hbox);

    /* 设置复制按钮 */
   button1 = gtk_button_new_with_label ("       复制文件		");
   g_signal_connect_swapped (G_OBJECT (button1), "clicked",G_CALLBACK (button1_callback),window);
   gtk_box_pack_start (GTK_BOX (hbox), button1, FALSE, FALSE, 0);
    gtk_widget_show (button1);

    /* 设置关闭按钮 */
   button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
   g_signal_connect_swapped (G_OBJECT (button), "clicked",G_CALLBACK (gtk_widget_destroy),window);
   gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
   GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
   gtk_widget_grab_default (button);
   gtk_widget_show (button);
    
   gtk_widget_show (window);
   gtk_main();
   return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -