📄 copyfile.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 + -