gpt4 book ai didi

c++ - 使用 libfm Linux 在 C 中自定义操作或命令?

转载 作者:行者123 更新时间:2023-11-30 16:19:47 25 4
gpt4 key购买 nike

我正在为 pcmanfm 执行自定义操作,我正在编辑文件“main-win.c”,代码如下:

static void on_open(GtkAction* act, FmMainWin* win) {
FmFileInfoList *files = fm_folder_view_dup_selected_files(win->folder_view);
if (files) {
GList* l = fm_file_info_list_peek_head_link(files);
if (g_list_length(l) > 0)
fm_launch_files_simple(GTK_WINDOW(win), NULL, l, pcmanfm_open_folder, NULL);
fm_file_info_list_unref(files);
}
}

*"FmFileInfoList files" 是文件管理器窗口中所选文件的列表。

"GList l"* 是将列表转换为双向链接列表。

函数fm_launch_files_simple()使用默认程序运行链表中的所有文件,例如“gedit/home/someuser/some.txt”或“totem/home/someuser/video.mp4” ”。

我需要谁?,我需要使用循环在所有选定的文件中执行自定义命令或函数,该命令是什么?这是命令:

fm_launch_command_simple(GTK_WINDOW(win), NULL, 0, "somecommand", NULL);

fm_launch_command_simple(),是一个 libfm 函数,它在执行 pcmanfm 的控制台中运行 bash 命令...

这是我想要使用“printf”函数执行的示例:

static void on_open(GtkAction* act, FmMainWin* win) {
FmFileInfoList *files = fm_folder_view_dup_selected_files(win->folder_view);
if (files) {
//GList* l = fm_file_info_list_peek_head_link(files);
//if (g_list_length(l) > 0)
//fm_launch_files_simple(GTK_WINDOW(win), NULL, l, pcmanfm_open_folder, NULL);
for (file in files) {
printf("echo File selected: " + file[i]);
}
fm_file_info_list_unref(files);
}
}

这里是使用函数“fm_launch_command_simple”的其他示例:

static void on_open(GtkAction* act, FmMainWin* win) {
FmFileInfoList *files = fm_folder_view_dup_selected_files(win->folder_view);
if (files) {
//GList* l = fm_file_info_list_peek_head_link(files);
//if (g_list_length(l) > 0)
//fm_launch_files_simple(GTK_WINDOW(win), NULL, l, pcmanfm_open_folder, NULL);
for (file in files) {
fm_launch_command_simple(GTK_WINDOW(win), NULL, 0, "echo File selected: " + file[i], NULL);
}
fm_file_info_list_unref(files);
}
}

我是这门编程语言的新手。

最佳答案

使用g_list_foreach https://developer.gnome.org/glib/stable/glib-Doubly-Linked-Lists.html#g-list-foreach

然后创建一个包装 fm_launch_command_simple 的 void (*GFunc) (gpointer listItem, gpointer otherStuffEnteredInGListForeach) 函数。

关于c++ - 使用 libfm Linux 在 C 中自定义操作或命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com