Category: Programming
用C、Python和Shell语言在终端打印格式化和彩色文本
例子 以打印一个蓝色斜体的”hello, world“为例: C printf(“\033[3;34mhello, world\033[0m\n”); python print “\033[3;34mhello, world\033[0m” Shell echo -e ‘\033[3;34mhello, world\033[0m’ 格式 \033[Para0{;Para1…}mYOUR_TEXT\033[0m \033[Para0{;Para1…}m 表示转义开始 *033[0m 作为转义结束 Para0(1,2…) 参数可以为多个,比如上述例子*,3表示为斜体,34表示蓝色 YOUR_TEXT 在例子中就是hello, world 参数 Linux中通过man console_codes命令可查看详细的参数描述*这里写一下常用的格式和颜色: 常用格式: 参数代码 描述 0 重置所有格式 1 粗体(高亮) 2 暗色 3 斜体 4 下划线 5 闪烁 常用颜色: (前景色为30+颜色代码;背景色为40+颜色代码。) 颜色 代码 前景 背景 黑 0 30 40 红 […]
C语言中结构体struct初始化和赋值的几种方式
http://stackoverflow.com/questions/330793/how-to-initialize-a-struct-in-accordance-with-c-programming-language-standards 在内核中fs/ext3/indoe.c中,一个struct初始化格式个这样的: static const struct address_space_operations ext3_writeback_aops = { .readpage = ext3_readpage, .readpages = ext3_readpages, .writepage = ext3_writeback_writepage, .write_begin = ext3_write_begin, .write_end = ext3_writeback_write_end, .bmap = ext3_bmap, .invalidatepage = ext3_invalidatepage, .releasepage = ext3_releasepage, .direct_IO = ext3_direct_IO, .migratepage = buffer_migrate_page, .is_partially_uptodate = block_is_partially_uptodate, .error_remove_page = generic_error_remove_page, }; 我以前没见过这种形式,于是查了一下,原来这是属于C99的“新”特性。 初始化 对于最初(C89)一般形式的struct初始化,需要在大括号中按照成员顺序初始化,和初始化数组很类似;而C99支持乱序初始化,只要给出初始化的变量名,并且在前面加点,后边加等号即可。下面举例和c语言中一般形式的初始化结构体对比:
只用OS X系统实现A8嵌入式试验箱(linux)的交叉编译
连接 以电脑为终端,采用基于PL2302芯片的串口转USB线链接电脑和试验箱,MAC OS X系统需要安装芯片的驱动(文件名md_PL2303_MacOSX10_6_dmg_v1_4_0.zip)通过文件内说明文档进行相关设置,然后可以连接成功。 Mac终端下用screen命令实现试验箱终端功能. screen /dev/tty.usbserial 115200 >注意拔下USB时要用A(ctrl+A)+k命令退出screen,否则会导致OS X 死机(不明原因)。如果没有退出screen直接将终端窗口关闭了,用命令ps|grep tty查找相应进程进程ID然后结束掉它(kill PID),这样再拔出USB就不会死机了。 交叉编译 需要安装arm-none-linux-gnueabi-gcc,相当于linux的arm-linux-gcc。使用方法类似gcc. arm-none-linux-gnueabi-gcc test.c -o test ftp通信传输文件 通过以太网口连接试验箱和mac,终端修改试验箱ipconfig eth0 -i 192.168.1.101 -m 255.255.255.0 -g 192.168.1.1然后执service network restart、Mac自身网络偏好设置修改两者IP使其在同一区段(192.168.1.102) 在Mac终端下用ftp命令ftp 192.168.1.101登陆试验箱linux,用户名anonymous(匿名),密码任意。 put命令具体使用方法可以参考博文《Linux 终端访问 FTP 及 上传下载 文件》 上传文件put test test 在终端上执行程序 增加可权限chmod +x test 执行:./test