2015-07-22 2 views
3

Есть ли функция, которая возвращает строку версии FUSE?Получить строку версии FUSE

fuse_common.h имеет int fuse_version(void), который возвращает основную версию, умноженную на 10, плюс младшую версию; оба из которых получены из значений #define. (например, это возвращает 27 на моей платформе). Тем не менее, я ищу char* fuse_version(void), который вернет что-то вроде 2.7.3.

ответ

2

Как вы сказали, версия определена в fuse_common.h. Если вы не хотите использовать helper_version, как сказал @Alexguitar вы можете просто написать небольшую программу, которая делает это - но мне кажется, что только первые два числа (большие и малые) доступны:

#include <fuse/fuse.h> 
#include <stdlib.h> 
#include <stdio.h> 

char* str_fuse_version(void) { 
    static char str[10] = {0,0,0,0,0,0,0,0,0,0}; 
    if (str[0]==0) { 
     int v = fuse_version(); 
     int a = v/10; 
     int b = v%10; 
     snprintf(str,10,"%d.%d",a,b); 
    } 
    return str; 
} 


int main() { 
    printf("%s\n", str_fuse_version()); 
    exit(EXIT_SUCCESS); 
} 

Примечание: вы должны включить fuse/fuse.h, а не fuse_common.h; Кроме того, при компиляции вам может потребоваться передать -D_FILE_OFFSET_BITS=64.

$ gcc -Wall fuseversiontest.c -D_FILE_OFFSET_BITS=64 -lfuse 

$ ./a.out 
2.9 
+0

@Alexguitar: спасибо, я отредактировал мой ответ! – Jay

2

В исходном коде предохранителя в включают/config.h у вас есть:

/* Define to the version of this package. */ 
#define PACKAGE_VERSION "2.9.4" 

Кроме того, есть функция Lib/helper.c, который печатает его.

static void helper_version(void) 
{ 
    fprintf(stderr, "FUSE library version: %s\n", PACKAGE_VERSION); 
} 

Edit:

Я понимаю, что строки пакета управления версиями только для внутреннего использования, так что вы, вероятно, застрял с крупными и небольшими числами, вскрытых fuse_common.h. Вам, вероятно, придется написать такую ​​функцию, как предлагает @Jay.

+1

Поскольку это статическая функция без соответствующего заголовка, я полагаю, что один из них вынужден использовать шаблон major.minor. Интересно, согласятся ли они на патч :) – Xophmeister

+1

[Заявленный запрос на слияние] (https://sourceforge.net/p/fuse/fuse/merge-requests/5/) :) – Xophmeister

Смежные вопросы