metalink_parse_fp man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

METALINK_PARSE_FILE(3)	      libmetalink Manual	METALINK_PARSE_FILE(3)

NAME
       metalink_parse_file,    metalink_parse_fp,    metalink_parse_fd,	  met‐
       alink_parse_memory - Parse Metalink file and create metalink_t object.

SYNOPSIS
       #include <metalink/metalink.h>

       metalink_error_t metalink_parse_file(const char	*filename,  metalink_t
       **res);
       metalink_error_t metalink_parse_fp(FILE *docfp, metalink_t **res);
       metalink_error_t metalink_parse_fd(int docfd, metalink_t **res);
       metalink_error_t	 metalink_parse_memory(const  char  *buf,  size_t len,
       metalink_t **res);

DESCRIPTION
       These functions parse Metalink  file  data  and	constructs  metalink_t
       structure.  You don't have to allocate memory for metalink_t structure.
       They take the pointer of metalink_t pointer  and	 allocate  memory  for
       that pointer.

       metalink_parse_file() parses Metalink file denoted by filename and con‐
       structs metalink_t structure.

       metalink_parse_fp() reads data from file stream docfp  and  construtcts
       metalink_t structure.

       metalink_parse_fd()  reads  data	 from  file  descriptor docfd and con‐
       structs metalink_t structure.

       metalink_parse_memory() parses len bytes of  buf	 and  constructs  met‐
       alink_t structure.

       The  caller  must  free	the  memory allocated for metalink_t structure
       using metalink_delete(3) if it is no longer used.

RETURN VALUE
       All functions return 0 for success. When error occurred, non-zero value
       error  code  is returned and metalink_t structure is not allocated. The
       error codes are described in metalink_error.h.

EXAMPLE
       #include <stdio.h>
       #include <stdlib.h>
       #include <metalink/metalink.h>

       int main(int argc, char** argv)
       {
	 metalink_error_t r;
	 metalink_t* metalink;
	 metalink_file_t* file;
	 metalink_checksum_t** checksums;

	 r = metalink_parse_file("sample.metalink", &metalink);

	 if(r != 0) {
	   fprintf(stderr, "ERROR: code=%d\n", r);
	   exit(EXIT_FAILURE);
	 }

	 file = metalink->files[0];
	 printf("name: %s\n", file->name);
	 printf("size: %lld\n", file->size);
	 printf("os  : %s\n", file->os);

	 if(file->checksums) {
	   checksums = file->checksums;
	   while(*checksums) {
	     printf("hash: %s %s\n", (*checksums)->type, (*checksums)->hash);
	     ++checksums;
	   }
	 }
	 if(file->chunk_checksum) {
	   size_t count = 0;
	   metalink_piece_hash_t** piece_hashes;
	   printf("chunk checksum: size=%d, type=%s\n",
		  file->chunk_checksum->length,
		  file->chunk_checksum->type);
	   printf("first 5 piece hashes...\n");
	   piece_hashes = file->chunk_checksum->piece_hashes;
	   while(*piece_hashes && count < 5) {
	     printf("piece=%d, hash=%s\n", (*piece_hashes)->piece,
					    (*piece_hashes)->hash);
	     ++piece_hashes;
	     ++count;
	   }
	   printf("...\n");
	 }
	 if(file->resources) {
	   size_t count = 0;
	   metalink_resource_t** resources;
	   printf("first 5 resources...\n");
	   resources = file->resources;
	   while(*resources && count < 5) {
	     printf("type=%s, location=%s, preference=%d, url=%s\n",
		    (*resources)->type, (*resources)->location,
		    (*resources)->preference, (*resources)->url);
	     ++resources;
	     ++count;
	   }
	   printf("...\n");
	 }

	 /* delete metalink_t */
	 metalink_delete(metalink);

	 return EXIT_SUCCESS;
       }

SEE ALSO
       metalink_delete(3), metalink_parse_update(3), metalink_t(3)

libmetalink 0.1.0		   July 2012		METALINK_PARSE_FILE(3)
[top]

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net