コード例 #1
0
ファイル: dtest.c プロジェクト: 003900107/realboard-lpc4088
void big_xattr_test(const char *mountpt)
{
	char name[100];
	int h;
	int result;
	char val[1000];

	yaffs_StartUp();

	yaffs_mount(mountpt);

	strcpy(name,mountpt);
	strcat(name,"/");
	strcat(name,"xfile");

	yaffs_unlink(name);
	h = yaffs_open(name,O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE);
	yaffs_close(h);

	printf("Start\n");
	list_xattr(name);

	printf("Add a large  attribute\n");
	memset(val,0x1,sizeof(val));
	result = yaffs_setxattr(name,"aaa",val,200,0);
	printf("wrote attribute aaa: result %d\n",result);
	list_xattr(name);

	printf("Add a large  attribute\n");
	memset(val,0x2,sizeof(val));
	result = yaffs_setxattr(name,"bbb",val,1000,0);
	printf("wrote attribute bbb: result %d\n",result);
	list_xattr(name);

	printf("Replace attribute\n");
	memset(val,0x3,sizeof(val));
	result = yaffs_setxattr(name,"aaa",val,1000,0);
	printf("wrote attribute aaa: result %d\n",result);
	list_xattr(name);

}
コード例 #2
0
ファイル: dtest.c プロジェクト: 003900107/realboard-lpc4088
void basic_xattr_test(const char *mountpt)
{
	char name[100];
	int h;
	int result;
	int val1;

	yaffs_StartUp();

	yaffs_mount(mountpt);

	strcpy(name,mountpt);
	strcat(name,"/");
	strcat(name,"xfile");

	yaffs_unlink(name);
	h = yaffs_open(name,O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE);
	yaffs_close(h);

	printf("Start\n");
	list_xattr(name);

	printf("Add an attribute\n");
	val1 = 0x123456;
	result = yaffs_setxattr(name,"foo",&val1,sizeof(val1),0);
	printf("wrote attribute foo: result %d\n",result);
	list_xattr(name);
	printf("Add an attribute\n");
	val1 = 0x7890;
	result = yaffs_setxattr(name,"bar",&val1,sizeof(val1),0);
	printf("wrote attribute bar: result %d\n",result);
	list_xattr(name);

	printf("Get non-existanrt attribute\n");
	print_xattrib_val(name,"not here");

	printf("Delete non existing attribute\n");
	yaffs_removexattr(name,"not here");
	list_xattr(name);

	printf("Remove foo\n");
	yaffs_removexattr(name,"foo");
	list_xattr(name);

	printf("Remove bar\n");
	yaffs_removexattr(name,"bar");
	list_xattr(name);

}
コード例 #3
0
ファイル: ac_xattr.c プロジェクト: neoneye/AnalyzeCopy
int main(int argc, char** argv) {
    int mode_l = 0, mode_w = 0, mode_d = 0, flag_s = 0;
    char c = 0;
    while((c = getopt(argc, argv, "hvlwds")) != -1) {
        switch(c) {
        case 'h':
            print_help();
            return 0;
        case 'v':
            print_version();
            return 0;
        case 'l':
            mode_l++;
            break; // [l]ist all entries
        case 'w':
            mode_w++;
            break; // [w]rite one entry
        case 'd':
            mode_d++;
            break; // [d]elete one entry
        case 's':
            flag_s++;
            break; // act on [s]ymlink
        default:
            print_help();
            return 0;
        }
    }
    if(mode_l + mode_w + mode_d != 1) {
        printf("ERROR: invalid combination of arguments\n");
        print_help();
        return 1;
    }

    // list extended attributes
    if(mode_l) {
        int i = optind;
        for(; i < argc; i++) {
            list_xattr(argv[i], flag_s);
        }
        return 0;
    }

    // write extended attribute to file
    if(mode_w) {
        int i = optind + 2;
        for(; i < argc; i++) {
            write_xattr(argv[optind], argv[optind + 1], argv[i], flag_s);
        }
        return 0;
    }

    // delete extended attribute from file
    if(mode_d) {
        int i = optind + 1;
        for(; i < argc; i++) {
            delete_xattr(argv[optind], argv[i], flag_s);
        }
        return 0;
    }

    print_help();
    return 0;
}