我有一个将日志写入日志文件的功能 - write_log()
。只调用一次函数,让其他函数访问它的返回值?
我需要知道我处理的是什么类型的磁盘,SSD或传统硬盘。我有一个函数:
/*
* Returns disk type.
*
* 0 -> SSD
* 1 -> HDD
*/
int get_disk_type(void)
{
int disk_type;
char line[line_buf];
FILE * disk_pipe = fopen("/sys/block/sda/queue/rotational", "r");
if(disk_pipe)
{
fgets(line, sizeof line, disk_pipe);
sscanf(line, "%d", &disk_type);
}
fclose(disk_pipe);
return disk_type;
}
我想传递disk_type
作为参数传递到日志中的消息日志文件的功能。由于该函数调用次数太多,所以无法在任何地方更改write_log()
的语法。
我想,也许让write_log()
呼叫get_disk_type()
但由于write_log()
被调用的次数太多,get_disk_type()
将被调用几次也和可能妨碍性能(这已经从日志文件确定)。
所以我想知道write_log()
访问disk_type
的最佳方法是什么?
'popen(“cat ...”)'?为什么不只是“打开”(“...”)? – melpomene
@melpomene是的。将更新它。 –
使用重构IDE(或全局正则表达式搜索/替换)可以轻松地改变对'write_log()'的调用。 – melpomene