Как вы сказали, версия определена в 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
@Alexguitar: спасибо, я отредактировал мой ответ! – Jay