Chinaunix首页 | 论坛 | 博客
  • 博客访问: 294237
  • 博文数量: 56
  • 博客积分: 3025
  • 博客等级: 中校
  • 技术积分: 534
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 17:28
个人简介

Honesty and diligence should be your eternal mates.

文章分类

全部博文(56)

文章存档

2012年(1)

2011年(27)

2010年(20)

2008年(8)

分类: 云计算

2011-09-04 17:41:58

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
问题轻松解决。
阅读(870) | 评论(0) | 转发(0) |
0

上一篇:字节对齐详解【转】

下一篇:[转载]glib.h

给主人留下些什么吧!~~