1、inode 的定义中,为什么会使用取消字节对齐?
原因可能有2:1是inode结构体中都是4个或8个字节的类型,无需对齐便可从偶数地址开始读取数据,而且inode中有3个4字节的数据类型,那么编译器会在inode结尾多分配4字节的空间以达到整个数据结构的8字节对齐,取消字节对齐可以节省4字节的空间。2是存储到磁盘中以后可能会对磁盘结构造成影响。
2、柔性数组结构成员:
struct log_header {
|
int32_t version;
|
int64_t header_checksum;
|
int64_t data_checksum;
|
uint32_t log_size;
|
uint64_t ctime; /* create time */
|
uint64_t start_db_no; /* log first db no*/
|
uint32_t db_num; /* db amounts */
|
uint32_t ib_num; /* ib amount */
|
char data[0];
|
}__attribute__((packed));
|
|
该结构体中包含柔性数组结构成员char data[0],其作用是在分配结构体空间的时候可以改变分配空间的大小。如:struct log_header *p = (struct log_header *) malloc(sizeof(struct log_header)+100*sizeof(int));
3、glibc中的g_message函数格式如下:
void g_message(gchar *format,......);
师哥的代码
g_message(G_LOG_HLFS_DOMAIN,"local [fs:%s] [path%s]\n",fs_name,fs_path);
是否可行?
自己编写了如下代码进行测试:
1 #include
2
3 main()
4 {
5 char a[]="adaksfsdafasdfsdfasdf";
6 g_message("HLFS", ":bucuo%s", a);
7 }
打印结果:
** Message: HLFS
应该是不可以的。
4、NBD安装和使用的问题:
在Ubuntu10.10下使用命令
sudo apt-get install nbd-server nbd-client
安装nbd时遇到下面的警告:
** Message: No configured exports; quitting.
nbd-server.
之后在使用命令
sudo nbd-server 1234 /var/tmp/nbd-disk
启动nbd-server时又出现了下面的警告:
** (process:14752): WARNING **: Specifying an export on the command line is deprecated.
** (process:14752): WARNING **: Please use a configuration file instead.
根据提示问题应该是没有nbd-server的配置文件。然后查阅man手册页:
根据NBD-SERVER的编写规则编写了如下配置文件:
1 [generic]
2 [export1]
3 exportname = /var/tmp/nbd-disk
4 port = 12345
问题轻松解决。
阅读(880) | 评论(0) | 转发(0) |