在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和recv,send的区别

[Linux]read/write和fread/fwrite有什么区别

Linux read/write fread/fwrite两者区别

麻烦问一下Linux下GPIO驱动的问题,ioctl函数和write函数有啥区别,

Linux系统函数read()/write()/pread()/pwrite()的区别-(转自CSDN网络)

linux中readl()和writel()函数---用于读写寄存器