我正在使用CPUID指令在我的操作系统中打印有关CPU的一些信息.
阅读和打印供应商字符串(GenuineIntel)运作良好,但阅读品牌字符串给我一点奇怪的字符串.
ok cpu-info <= Run command
CPU Vendor name: GenuineIntel <= Vendor string is good
CPU Brand: D: l(R) Core(TMD: CPU MD: <= What..?
ok
Run Code Online (Sandbox Code Playgroud)
供应商字符串应该是:
Intel(R) Core(TM) i5 CPU M 540
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
D: l(R) Core(TMD: CPU MD:
Run Code Online (Sandbox Code Playgroud)
C++代码:
char vendorString[13] = { 0, };
Dword eax, ebx, ecx, edx;
ACpuid(0, &eax, &ebx, &ecx, &edx);
*((Dword*)vendorString) = ebx;
*((Dword*)vendorString + 1) = edx;
*((Dword*)vendorString + 2) = ecx;
Console::Output.Write(L"CPU vendor name: ");
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来从文件中读取命令并执行.它从文件中读取命令并执行它.此外,从文件读取输入并将每个输出的命令输出到文件.
我正在与ComputerCraft(一个使用lua的Minecraft mod)进行通信.
我用Google搜索,并不难找到如何重定向标准输入.它似乎与/ dev/stdin类似,但不是普通文件.
我测试了cat,nano和bash,但没有一个尝试读取用户输入.我还测试了这个简单的C程序:
#include <stdio.h>
int main()
{
char str1[20], str2[30];
printf("Enter name: ");
scanf("%s", str1);
printf("Enter your website name: ");
scanf("%s", str2);
printf("Entered Name: %s\n", str1);
printf("Entered Website:%s", str2);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
当我使用脚本运行此程序时,我得到了这个:
输入姓名:输入您的网站名称:输入姓名:
进入网站:
在正常情况下,这应该是这样的:
输入名称:Gippeumi
输入您的网站名称:omg
输入名称:Gippeumi
进入网站:omg
有没有办法让这项工作?
编辑:我忘了上传脚本.就这个:
#!/bin/bash
echo "Loading..."
BASE_DIR="mem/"
STATUS_FILE=$BASE_DIR"Status"
OUTPUT_FILE=$BASE_DIR"Output"
INPUT_FILE=$BASE_DIR"Input"
RETCODE_FILE=$BASE_DIR"ReturnedCode"
CMDIN_FILE=$BASE_DIR"CommandInput"
READY=0
RUNNING=1
sudo umount mem
sudo mount -t tmpfs tmpfs mem
rm -rf $INPUT_FILE
echo $READY > $STATUS_FILE
touch $OUTPUT_FILE
touch $INPUT_FILE
touch $RETCODE_FILE
touch $CMDIN_FILE …Run Code Online (Sandbox Code Playgroud)