在linux中write和writel的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在linux中write和writel的区别相关的知识,希望对你有一定的参考价值。
Writeln是输出语句,输出语句有三种格式:① Write (输出项1,输出项2) ; {执行输出后光标不换行}
② Writeln (输出项1,输出项2) ; {执行输出后光标换到下一行}
③ Writeln {仅输出空白且光标换到下一行}
Writeln语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔; 对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达式的值,而不是表达式本身。
Readln是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。
Readln是输入语句,它的一般格式为:
① Read (变量1,变量2);
② Readln (变量1,变量2);
③ Readln
前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read语句读完数据之后,能让后续的读语句接着读取多下来的数据;而Readln 语句对本行多输入的数据不能让后续语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议尽量使用Readln语句输入数据。第三种格式不需输入数据,只需按入一个回车键。 参考技术A #define readb __raw_readb
#define readw(addr) __le16_to_cpu(__raw_readw(addr))
#define readl(addr) __le32_to_cpu(__raw_readl(addr))
#ifndef __raw_readb
static inline u8 __raw_readb(const volatile void __iomem *addr)
return *(const volatile u8 __force *) addr;
#endif
#ifndef __raw_readw
static inline u16 __raw_readw(const volatile void __iomem *addr)
return *(const volatile u16 __force *) addr;
#endif
#ifndef __raw_readl
static inline u32 __raw_readl(const volatile void __iomem *addr)
return *(const volatile u32 __force *) addr;
#endif
#define writeb __raw_writeb
#define writew(b,addr) __raw_writew(__cpu_to_le16(b),addr)
#define writel(b,addr) __raw_writel(__cpu_to_le32(b),addr)
以上是关于在linux中write和writel的区别的主要内容,如果未能解决你的问题,请参考以下文章
[Linux]read/write和fread/fwrite有什么区别
Linux read/write fread/fwrite两者区别
麻烦问一下Linux下GPIO驱动的问题,ioctl函数和write函数有啥区别,