C语言获取按键信息函数这个程序应该满足你的要求吧 。
#include stdio.h
#include conio.h
int main(void)
{
while (1)
{
if (!kbhit())
printf("1");
else
{
char c = getch();
if (c == 'a')
{
putchar('2');
getch();
}
}
}
return 0;
}
怎样用C语言获取硬件信息这个需要相关c语言如何获取信息函数的库以及API 。
给你一个获取cpu信息的函数c语言如何获取信息函数:
DWORD MyCPUSpeed()
{
BSTR bstrMyCpuName=NULL;
BSTR bstrMyPropName = NULL;
VARIANT pVal;
char szText[256];
int nCpuNum=0;
DWORD dwCpuSpeed=0;
IWbemClassObject *pCpuInst=NULL;
IWbemQualifierSet* pQualSet = NULL;
bstrMyPropName = SysAllocString(L"CurrentClockSpeed");
if(bstrMyPropName == NULL)
{
return dwCpuSpeed;
}
while(1)
{
memset(szText,0,sizeof(szText));
sprintf(szText,"Win32_Processor.DeviceID=\"CPU%d\"", nCpuNum);
bstrMyCpuName = _bstr_t(szText);
if(bstrMyCpuName == NULL)
{
break;
}
if(pSvc-GetObject(bstrMyCpuName, 0L, NULL, pCpuInst, NULL) != S_OK)
{
break;
}
if(pCpuInst-Get(bstrMyPropName, 0L, pVal, NULL, NULL) == S_OK)
{
nCpuNum;
dwCpuSpeed= pVal.lVal;
}
VariantClear(pVal);
SysFreeString(bstrMyCpuName);
bstrMyCpuName = NULL;
}
if(bstrMyPropName != NULL)
{
SysFreeString(bstrMyPropName);
bstrMyPropName = NULL;
}
if(bstrMyCpuName != NULL)
{
SysFreeString(bstrMyCpuName);
bstrMyCpuName = NULL;
}
memset(szText,0,sizeof(szText));
sprintf(szText, "CPU个数: %d, CPU频率: %ld Mhz", nCpuNum, dwCpuSpeed);
cout"------------------------"szText"-------------------------"endl;
return dwCpuSpeed;
}
C语言如何获取文件信息?stat这个函数如何使用? - C / C-stat(取得文件状态)
相关函数fstat,lstat,chmod , chown,readlink,utime
表头文件#include sys/stat.h
#include unistd.h
定义函数intstat(constchar*file_name,structstat*buf);
函数说明stat()用来将参数file_name所指的文件状态 , 复制到参数buf所指的结构中 。
下面是structstat内各参数的说明
structstat
{
dev_tst_dev;/*device*/
ino_tst_ino;/*inode*/
mode_tst_mode;/*protection*/
nlink_tst_nlink;/*numberofhardlinks*/
uid_tst_uid;/*userIDofowner*/
gid_tst_gid;/*groupIDofowner*/
dev_tst_rdev;/*devicetype*/
off_tst_size;/*totalsize,inbytes*/
unsignedlongst_blksize;/*blocksizeforfilesystemI/O*/
unsignedlongst_blocks;/*numberofblocksallocated*/
time_tst_atime;/*timeoflastaccess*/
time_tst_mtime;/*timeoflastmodification*/
time_tst_ctime;/*timeoflastchange*/
};
st_dev文件的设备编号
【c语言如何获取信息函数 c语言读取函数】st_ino文件的i-node
st_mode文件的类型和存取的权限
st_nlink连到该文件的硬连接数目,刚建立的文件值为1 。
st_uid文件所有者的用户识别码
st_gid文件所有者的组识别码
st_rdev若此文件为装置设备文件,则为其设备编号
st_size文件大小,以字节计算
st_blksize文件系统的I/O缓冲区大小 。
st_blcoks占用文件区块的个数,每一区块大小为512个字节 。
st_atime文件最近一次被存取或被执行的时间,一般只有在用mknod、utime、read、write与tructate时改变 。
st_mtime文件最后一次被修改的时间,一般只有在用mknod、utime和write时才会改变
st_ctimei-node最近一次被更改的时间 , 此参数会在文件所有者、组、权限被更改时更新先前所描述的st_mode则定义了下列数种情况
S_IFMT0170000文件类型的位遮罩
S_IFSOCK0140000scoket
S_IFLNK0120000符号连接
S_IFREG0100000一般文件
S_IFBLK0060000区块装置
S_IFDIR0040000目录
S_IFCHR0020000字符装置
S_IFIFO0010000先进先出
S_ISUID04000文件的(setuser-idonexecution)位
S_ISGID02000文件的(setgroup-idonexecution)位
S_ISVTX01000文件的sticky位
S_IRUSR(S_IREAD)00400文件所有者具可读取权限
S_IWUSR(S_IWRITE)00200文件所有者具可写入权限
S_IXUSR(S_IEXEC)00100文件所有者具可执行权限
S_IRGRP00040用户组具可读取权限
S_IWGRP00020用户组具可写入权限
S_IXGRP00010用户组具可执行权限
S_IROTH00004其他用户具可读取权限
S_IWOTH00002其他用户具可写入权限
S_IXOTH00001其他用户具可执行权限
上述的文件类型在POSIX中定义了检查这些类型的宏定义
S_ISLNK(st_mode)判断是否为符号连接
S_ISREG(st_mode)是否为一般文件
S_ISDIR(st_mode)是否为目录
S_ISCHR(st_mode)是否为字符装置文件
S_ISBLK(s3e)是否为先进先出
S_ISSOCK(st_mode)是否为socket
若一目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来删除或改名 。
返回值执行成功则返回0,失败返回-1,错误代码存于errno
错误代码ENOENT参数file_name指定的文件不存在
ENOTDIR路径中的目录存在但却非真正的目录
ELOOP欲打开的文件有过多符号连接问题 , 上限为16符号连接
EFAULT参数buf为无效指针,指向无法存在的内存空间
EACCESS存取文件时被拒绝
ENOMEM核心内存不足
ENAMETOOLONG参数file_name的路径名称太长
范例#include sys/stat.h
#include unistd.h
mian()
{
structstatbuf;
stat(“/etc/passwd”,buf);
printf(“/etc/passwdfilesize=%d/n”,buf.st_size);
}
关于c语言如何获取信息函数和c语言读取函数的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 电视机怎么连接usb接口,电视怎样连接usb接口
- 视频号小店铺名字怎么改,视频号小店个人怎么改企业版
- 蒙古什么舞最有名视频,蒙古舞的
- 怎么去除手机色差,手机出现色差
- php如何做带换行的数据 php中换行
- 苹果cms通用分析,苹果cms分类列表类型
- 丧尸经营类酒吧游戏叫什么,丧尸喝酒
- 解谜系列游戏手机游戏,解谜游戏手游推荐
- vb.net如何延时的简单介绍