为您找到与linux从键盘获取字符相关的共200个结果:
源码如下:
#include
#include
#include
#include
//文件系统信息结构体
struct fileSystem_info{
char fileSystem_format[8];
char fileSystem_total_capacity[11];
char fileSystem_free_capacity[11];
char fileSystem_permissions[3];
};
/*获取文件系统信息*/
int get_fileSystem_info(const char *fileSystem_name, struct fileSystem_info *fi);
/*block to kbyte*/
static unsigned long kscale(unsigned long m_block, unsigned long m_kbyte);
/*convert size to GB MB KB*/
static char *convert_size(float m_size, char *dest);
int main()
{
char buf[1024];
struct fileSystem_info fileSysInfo;
get_fileSystem_info("/",&fileSysInfo);
printf("%s",fileSysInfo.fileSystem_format);
printf("%s",fileSysInfo.fileSystem_free_capacity);
printf("%s",fileSysInfo.fileSystem_total_capacity);
printf("%s",fileSysInfo.fileSystem_permissions);
return 0;
}
/*获取文件系统信息*/
int get_fileSystem_info(const char *fileSystem_name,struct fileSystem_info *fi)
{
struct statfs buf;
float fileSystem_total_size = 0;
float fileSystem_free_size = 0;
if(statfs(fileSystem_name,&buf))
{
fprintf(stderr,"statfs %s",strerror(errno));
return -1;
}
switch(buf.f_type)
{
case 0xEF51:
case 0xEF53:
sprintf(fi->fileSystem_format,"EXT");
break;
case 0x4d44:
sprintf(fi->fileSystem_format,"FAT");
break;
case 0x5346544e:
sprintf(fi->fileSystem_format,"NIFS");
break;
default:
sprintf(fi->fileSystem_format,"unknown");
break;
}
bzero(&fi->fileSystem_total_capacity,sizeof(fi->fileSystem_total_capacity));
bzero(&fi->fileSystem_free_capacity,sizeof(fi->fileSystem_free_capacity));
printf("blocks %ld",buf.f_blocks);
printf("bfree %ld",buf.f_bfree);
printf("bsize %ld",buf.f_bsize);
fileSystem_total_size =
(float)(kscale(buf.f_blocks, buf.f_bsize));
fileSystem_free_size =
(float)(kscale(buf.f_bfree, buf.f_bsize));
printf("total %f",fileSystem_total_size);
printf("free %f",fileSystem_free_size);
convert_size(fileSystem_total_size,fi->fileSystem_total_capacity);
convert_size(fileSystem_free_size,fi->fileSystem_free_capacity);
bzero(fi->fileSystem_permissions,sizeof(fi->fileSystem_permissions));
sprintf(fi->fileSystem_permissions,"rw");
return 0;
}
/*block to kbyte*/
static unsigned long kscale(unsigned long m_block, unsigned long m_kbyte)
{
return ((unsigned long long) m_block * m_kbyte + 1024 / 2 ) /1024;
}
/*convert size to GB MB KB*/
static char *convert_size(float m_size, char *dest)
{
if((((m_size / 1024.0) / 1024.0)) >= 1.0)
{
sprintf(dest,"%0.2fGB",(m_size/1024.0)/1024.0);
}
else if((m_size / 1024.0) >= 1.0)
{
sprintf(dest,"%0.2fMB",(m_size/1024));
}
else
{
sprintf(dest,"%0.2fKB",m_size);
}
return dest;
}
总结:
1、关于 struct statfs 结构体信息参考:http://blog.csdn.net/u011641885/article/details/46919027
2、对于fileSystem_total_size 使用float 类型,是为了精确度更高。buysbox 中的 fdisk 源码使用的是整型相除,约为4舍五入。
3、kscale 函数中 使用 unsigned long long 类型 是因为 m_block 与 m_byte 原本是long 型,相乘的结果超出了 long 类型的可以表示数据位。
浏览量:2
下载量:0
时间:
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
int sockfd;
struct ifreq ifr;
char *ifname="eth0";
strncpy(ifr.ifr_name, ifname, IFNAMSIZ-1);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(ioctl(sockfd, SIOCGIFADDR, &ifr) == -1)
{
printf("Error");
return;
}
struct sockaddr_in *myaddr;
myaddr = (struct sockaddr_in*)&(ifr.ifr_addr);
printf("IP: %s", inet_ntoa(myaddr->sin_addr));
}
浏览量:2
下载量:0
时间:
在Linux系统中打开windows文件就会出现^M字符,虽然这并不影响阅读,但如果能够去掉的话更好,下面读文网小编就给大家介绍下Linux中如何去除文件中的^M字符。
Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同。
在Linux下查看文件格式:
# file filename
# 20140304110001.csv: ISO-8859 text //不带有^M
# 20140304110002.csv: ISO-8859 text, with CRLF line terminators //带有^M
Windows下处理的文件就带有CRLF行终止符。
1. vi命令行模式下输入
:%s/^M$//g # 去掉行尾的^M。
:%s/^M//g # 去掉所有的^M。
:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。
:%s/^M//g # 将^M替换成回车。
2. 使用sed命令。和vi的用法相似:
# sed -e ‘s/^M//g’filename
3. 使用命令
使用dos2unix命令,一般的*nix发布版本都带有这个小工具,即Windows - *nix文件转换。
格式: dos2unix filename
转换多个文件
格式:dos2unix file1 file2 file3 …。
上面转换文件的时候都会修改原来的文件,使用 -k参数,或者 -n参数可以不改变文件属性。
格式:dos2unix -n oldfile newfile //新建一个文件,保持源文件不变
格式:dos2unix -k filename //保持文件时间戳不变
同样工具提供了*nix - windows文件格式转换命令:unix2dos,参数同dos2unix。
*注:“^M”,需要使用Ctrl + V + Ctrl + M键入,而不是数字6上面的^+字母M。
上面就是Linux下处理文件内容中的^M字符的介绍了,如果^M字符影响到了你的阅读,你想将其去掉的话,只需按照本文介绍的方法,就能将^M字符轻松去除了。
浏览量:3
下载量:0
时间:
在进行Linux系统操作的时候,因为测试程序性能的需要,必须将获得的时间精确到ns级,那么具体要如何实现呢?下面小编就教你如何使用函数实现Linux用户空间ns级时间的获取,一起来学习下吧。
使用clock_gettime函数,函数原型如下:
long sys_clock_gettime (clockid_t which_clock, struct timespec *tp);
1.which_clock参数解释
CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变
CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间
CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间
2.struct timespec结构
代码如下:
struct timespec
{
time_t tv_sec;
long int tv_nsec;
};
使用范例代码如下:
代码如下:
#include《stdio.h》
#include《stdlib.h》
#include《time.h》
int main(void)
{
struct timespec time_start={0, 0},time_end={0, 0};
clock_gettime(CLOCK_REALTIME, &time_start);
printf(“start time %llus,%llu ns”, time_start.tv_sec, time_start.tv_nsec);
clock_gettime(CLOCK_REALTIME, &time_end);
printf(“endtime %llus,%llu ns”, time_end.tv_sec, time_end.tv_nsec);
printf(“duration:%llus %lluns”, time_end.tv_sec-time_start.tv_sec, time_end.tv_nsec-time_start.tv_nsec);
return 0;
}
编译命令:
代码如下:
gcc test.c -o test -lrt
运行结果:
代码如下:
。/test
start time 1397395863s,973618673 ns
endtime 1397395863s,973633297 ns
duration:0s 14624ns
从运行结果可以看出 调用printf()函数一次需要15us左右
上面就是Linux下使用函数获得ns级时间的方法介绍了,如果你在测试程序性能需要精确到ns级时间的话,可以试试本文介绍的方法,是不是很简单呢?
浏览量:2
下载量:0
时间:
学好Linux系统中字符集的知识,能够解决很多系统问题,下面读文网小编给大家介绍下Linux系统中字符集的实例,通过实例来更深入的了解Linux字符集的修改。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
把linux的字符集改变一下。
路径:etc/sysconfig/i18n
默认的为:
代码如下:
LANG=“en_US.UTF-8”
SYSFONT=“latarcyrheb-sun16”
修改为:
代码如下:
LANG=“zh_CN.GB18030”
LANGUAGE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=“zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=“lat0-sun16”
重启Linux服务器即可。
上面就是Linux字符集修改的实例介绍了,相信有不少朋友有遇到过文中的问题,只要修改下Linux中的字符集就可以了,是不是很简单呢?赶紧试试看看吧。
浏览量:3
下载量:0
时间:
了解Linux系统命令的相比都知道,sed命令常用于文本文件的处理,今天小编就给大家介绍下如何使用sed命令替换字符串,感兴趣的朋友不妨来了解下吧。
代码如下:
sed ‘s/原字符串/替换字符串/’
单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线””进行转义,但是单引号”‘”是没有办法用反斜线””转义的,这时候只要把命令中的单引号改为双引号就行了,例如:
代码如下:
sed “s/原字符串包含‘/替换字符串包含’/” //要处理的字符包含单引号
命令中的三根斜线分隔符可以换成别的符号,这在要替换的内容有较多斜线是较为方便,只需要紧跟s定义即可,例如换成问号”?”:
代码如下:
sed ‘s?原字符串?替换字符串?’ //自定义分隔符为问号
可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:
代码如下:
sed ‘s/原字符串/替换字符串/’ //替换所有匹配关键字
上箭头”^”表示行首,美元”$”符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行),这里犯二了,搜了半天哪个符号表示首行,半天才想起来,首行就是数字”1″啊。那么在行首和行尾添加字符串就是把行尾和行首替换,例如:
代码如下:
sed ‘s/^/添加的头部&/g’ //在所有行首添加
sed ‘s/$/&添加的尾部/g’ //在所有行末添加
sed ‘2s/原字符串/替换字符串/g’ //替换第2行
sed ‘$s/原字符串/替换字符串/g’ //替换最后一行
sed ‘2,5s/原字符串/替换字符串/g’ //替换2到5行
sed ‘2,$s/原字符串/替换字符串/g’ //替换2到最后一行
替换样式可以多个在同一条命令中执行,用分号”;”分隔,例如:
代码如下:
sed ‘s/^/添加的头部&/g;s/$/&添加的尾部/g’ //同时执行两个替换规则
sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数”i”直接在文件中替换:
代码如下:
sed -i ‘s/原字符串/替换字符串/g’ filename //替换文件中的所有匹配项
上面就是Linux下使用sed命令替换字符串的方法介绍了,sed命令的用法远不止这些,本文只是举个例子给大家简单介绍下sed命令,想要使用sed命令替换字符串的朋友可以做个参考。
浏览量:2
下载量:0
时间:
作为Linux系统的初学者来说,学会使用获取命令帮助是很重要的,当你忘记或遇到问题的时候,帮助文档这时就起作用了,下面读文网小编就给大家介绍下Linux如何获取命令帮助。
遇到问题,二话不说Google,优先参考项目官方文档
上面就是Linux获取命令帮助的方法介绍了,本文一共介绍了六种查看方法,最后一个方法不一定要使用Google,也可百度搜索,看个人习惯。
浏览量:3
下载量:0
时间:
在Linux系统操作中,为了增加系统的安全性,可使用屏幕键盘,用鼠标进行操作。那么Linux如何使用屏幕键盘呢?其实有很多软件都能够开启屏幕键盘的,随读文网小编一起来学习下吧。
在 Linux 中有几个可用的开源键盘软件, 比如 GOK (Gnome 的屏幕键盘),kvkbd,onboard,Florence。
我会在这个教程中集中讲解 Florence, 告诉你如何用 Florence 设置一个屏幕键盘。 Florence 有着布局方案灵活、输入法多样、自动隐藏等特性。作为教程的一部分,我也将会示范如何只使用鼠标来操作 Ubuntu 桌面。
在 Linux 中安装 Florence 屏幕键盘
幸运的是,Florence 存在于大多数 Linux 发行版的基础仓库中。
在 Debian,Ubuntu 或者 Linux Mint 中:
$ sudo apt-get install florence
在 Fedora,CentOS 或者 RHEL (CentOS/RHEL 需要EPEL 仓库) 中:
$ sudo yum install florence
在 Mandriva 或者 Mageia 中:
$ sudo urpmi florence
对于 Archlinux 用户,Florence 存在于 AUR 中。
配置和加载屏幕键盘
当你安装好 Florence 之后,你只需要简单的输入以下命令就能加载屏幕键盘:
$ florence
默认情况下,屏幕键盘总是在其他窗口的顶部,让你能够在任意活动的窗口上进行输入。
在键盘的左侧点击工具按键来改变 Florence 的默认配置。
在 Florence 的 “样式 (style)” 菜单中,你能够自定义键盘样式,启用/取消声音效果。
在“窗口 (window)”菜单中,你能够调整键盘背景透明度、按键不透明度,以及控制键盘比例、工具栏、尺寸和总是置顶等特性。如果你的桌面分辨率不是非常高,透明度调整就显得非常有用,因为屏幕键盘会挡住其他窗口。在这个例子中,我切换到透明键盘,并且设置不透明度为 50%。
在“行为 (behaviour)”菜单中,你能够改变输入方法。Florence 支持几种不同的输入法: 鼠标 (mouse)、触摸屏 (touch screen)、计时器 (timer) 和漫步 (ramble)。鼠标输入是默认输入法。最后的两种输入法不需要按鼠标键。 计时器输入通过将指针滞留在按键上一定时间来触发按键。漫步输入的原理跟计时器输入差不多,但是经过训练和灵巧使用,能够比计时器输入更加迅速。
在“布局 (layout)”菜单中,你能够改变键盘布局。比如,你能够扩展键盘布局来增加导航键,数字键和功能键。
上面就是Linux使用屏幕键盘的方法介绍了,通过配置和加载屏幕键盘软件 Florence后,就能轻松使用鼠标进行屏幕键盘操作了。
浏览量:2
下载量:0
时间:
有一些用户不知道在Linux系统中怎么获取命令帮助,不过没关系。读文网小编今天就在这里给大家讲解下获取Linux命令帮助的六种方法有哪些:
有超链接稳文档,info是信息页,提供作者、版本,什么时候发布等更详细信息,man手册是告诉你怎么用
浏览量:2
下载量:0
时间:
Linux中支持自定义command的prompt字符,但是有很多LINUX操作系统的新手并不知道如何使用,不过没关系,读文网小编在本文就给大家介绍下了如何设置命令提示字符。
Linux如何设置命令提示字符
使用echo $PS1命令查看prompt字符
[root@golonglee ~]# echo $PS1
[u@h W]$
[root@golonglee ~]#
在/etc/inittab文件中可以是初始化列表
这是vi /etc/bashrc文件的内容
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='printf "