On 10/19/2015 07:58 PM, Pino Toscano wrote:
On Monday 19 October 2015 17:05:03 Maxim Perevedentsev wrote:
> +static int32_t
> +get_block_size (const char *device)
> +{
> + CLEANUP_FREE_STRING_LIST char **params = NULL;
> + const char *block_pattern = "Block size";
> + size_t i;
> + int32_t block_size;
> +
> + params = do_tune2fs_l (device);
This works, yes, although maybe there should be a way to run tune2fs -l
and traverse its output to either build a return hash (i.e. what
do_tune2fs_l currently does) or just lookup one or more keys (like
needed here).
We could extract running tune2fs -l to separate function returning
char*, and parse parameters using strstr. It's terrible... I think the
cost of calling external command is much higher than the cost of
building hash.
To make things betters, we could extract line-splitting function, create
2 similar functions (1 building hash (as for now) and 1 comparing key to
argument). I do not think we will save much if we avoid copying strings
into hash.
--
Your sincerely,
Maxim Perevedentsev