我想從ipmi傳感器的輸出中獲得一些信息,例如CPU_TEMP,CPU_FAN,...並保存另一個API使用的值。守護進程將從遠程發送命令來收集所有主機的硬件狀態。如何使用FreeIPMI API阻止ipmi傳感器輸出到標準輸出
我在跟蹤ipmi-sensors.c和相關文件的代碼,例如ipmi-sensors-simple-output.c和ipmi-sensors-detail-output.c。我發現ipmi-sensors默認輸出到stdout。在main(),IPMI標準的傳感器調用ipmi_sensors_argp_parse
第一,
ipmi_sensors_argp_parse (/*argc, argv, */&cmd_args);
我想從一個API獲取IPMI標準的傳感器的數據,我不使用argc
,argv
,我標出argc
,argv
和爲此調整函數調用的內容。
然後main()的調用另一個FUNC pstdout_setup
設置標準輸出的輸出
if ((hosts_count = pstdout_setup (&(prog_data.args->common_args.hostname),
&(prog_data.args->common_args))) < 0)
return (EXIT_FAILURE);
並啓動它
if ((rv = pstdout_launch (prog_data.args->common_args.hostname,
_ipmi_sensors,
&prog_data)) < 0)
確實FreeIPMI有FreeIPMI任何API調用來完成ipmi-sensors
的任務是什麼?或者我需要使用fork
和dup2
將標準輸出重定向到流或文件?或者我需要重寫ipmi-sensors
的全部內容?
感謝您的幫助。
也許嘗試使用這個[如何緩衝內存和寫入它的專用線程](http://stackoverflow.com/a/956269/3309645 ) –