通过posix shell [封闭]

问题描述 投票:0回答:1
这是C:
中的等效代码
int tempeture(){ FILE *file = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (!file) { perror("Failed to open temp file"); return 1; } int temp; fscanf(file, "%d", &temp); fclose(file); printf("CPU Temperature: %.2f°C\n", temp / 1000.0); return 0; }

我已经搜索了什么是posix和基本壳命令(

Reference

),但是我对C和实际用法不了解相对。
struct sysinfo info ;
printf("Uptime : %ld seconds \n ", info.uptime);

该是示例代码如何直接获取数据的情况。但是我不确定其posix命令。另一方面,此代码使用_LINUX_SYSINFO_H宏。因此可以回答这个问题吗?


我已经搜索了什么是posix和基本壳命令(参考),但是我用C和实际用法不了解相对。

,您很缺少执行和控制此类命令的上下文 - 即Shell。  本身,可用的命令提供了不完整的图片。  它们就像图书馆中可用的功能一样,这些功能需要编程语言,以形成一个连贯的整体。

与您的终端相关联的程序(读取输入并产生输出)是一个外壳。 除了您一直在研究的命令外,POSIX还指定了一组相当完整的编程结构(变量,I/O,有条件语句,循环,
c linux sh posix
1个回答
3
投票
),您可以在shell会话中进行交互式使用,但其中大多数在书写shell shell
shell

.

.ineplyssepls
.ineplyssepts

.inecly.ineplyssectsssepts

.ineplyssectsssepts

.ineplipsssply.inecly.indsscrips.ineplaseinlys session中。 这个不是一个合适的场所,可以尝试为您提供Shell命令语言的底漆,但是这是您可以使用的一系列命令,以产生与给出的C程序相同的结果,但要遵守您从中检索数据的存在和标准内容(一个小数号)(一个小数点)。 temp_millis=$(</sys/class/thermal/thermal_zone0/temp) temp=$(bc <<EOF scale=2 $temp_millis / 1000 EOF ) printf 'CPU Temperature: %s°C\n' "$temp" that

ia/oredirection

命令替换
读取温度文件的内容,并将它们存储在可变

temp_millis

;
    ;
  • ; 使用另一种形式的I/O重定向将其与其他输入一起喂入bc命令,该命令实现了任意推测计算器,
    可在变量
    temp
  • ;
  • ;中捕获另一个命令替换(像其他任何命令的输出一样)捕获输出(字符串,就像其他命令的输出一样)。
    使用
    printf
  • 命令(与C的
  • printf
    函数不同,尽管它们是相关的)来产生完整的输出消息。
    
  • 在线,
    awk
    命令是其自己定制语言的处理器,以流式传输文本处理为导向。 在这种特殊情况下,它可用于在单个相对简单的命令中产生所需的输出:
    awk '{ printf "CPU Temperature: %.2f°C\n", $1 / 1000.0 }' /sys/class/thermal/thermal_zone0/temp
    
    这甚至不是用于
  • awk
语言的底漆的适当场所,但是该特定命令和程序说:

run
awk

,使用第一个参数(
'{ printf "CPU Temperature: %.2f°C\n", $1 / 1000.0 }'
)作为程序来处理名为第二个参数的文件的内容

程序说,对于每条输入,提取第一个字段(
$1

),将其转换为数字,然后将其除以1000,然后根据所示格式格式并输出结果。
  • printf
    命令中的另一个是另一个不同的命令,尽管与我提到的其他两个相关。
    另一个例子也是如此,这也依赖于将从指定文件读取的数据形式的一些假设。
        
  • 应该只是:
    awk

您不必通过Posix CMD进行此操作。可用的方式。尽管如此:

awk '{printf "CPU Temperature: %.2f°C\n", $1/1000}' /sys/class/thermal/thermal_zone0/temp
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.