Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
AR(5)									 AR(5)

NAME
       ar - archive (library) file format

SYNOPSIS
       #include	<ar.h>

DESCRIPTION
       The  archive command ar is used to combine several files	into one.  Ar-
       chives are used mainly as libraries to be searched by  the  link-editor
       ld.

       A  file produced	by ar has a magic number at the	start, followed	by the
       constituent files, each preceded	by a file header.   The	 magic	number
       and header layout as described in the include file are:

	      /*-
	       * Copyright (c) 1991, 1993
	       *      The Regents of the University of California.  All	rights reserved.
	       * (c) UNIX System Laboratories, Inc.
	       * All or	some portions of this file are derived from material licensed
	       * to the	University of California by American Telephone and Telegraph
	       * Co. or	Unix System Laboratories, Inc. and are reproduced herein with
	       * the permission	of UNIX	System Laboratories, Inc.
	       *
	       * This code is derived from software contributed	to Berkeley by
	       * Hugh Smith at The University of Guelph.
	       *
	       * Redistribution	and use	in source and binary forms, with or without
	       * modification, are permitted provided that the following conditions
	       * are met:
	       * 1. Redistributions of source code must	retain the above copyright
	       *    notice, this list of conditions and	the following disclaimer.
	       * 2. Redistributions in binary form must	reproduce the above copyright
	       *    notice, this list of conditions and	the following disclaimer in the
	       *    documentation and/or other materials provided with the distribution.
	       * 3. Neither the	name of	the University nor the names of	its contributors
	       *    may	be used	to endorse or promote products derived from this software
	       *    without specific prior written permission.
	       *
	       * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS	IS'' AND
	       * ANY EXPRESS OR	IMPLIED	WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
	       * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
	       * ARE DISCLAIMED.  IN NO	EVENT SHALL THE	REGENTS	OR CONTRIBUTORS	BE LIABLE
	       * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,	EXEMPLARY, OR CONSEQUENTIAL
	       * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF	SUBSTITUTE GOODS
	       * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR	BUSINESS INTERRUPTION)
	       * HOWEVER CAUSED	AND ON ANY THEORY OF LIABILITY,	WHETHER	IN CONTRACT, STRICT
	       * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)	ARISING	IN ANY WAY
	       * OUT OF	THE USE	OF THIS	SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
	       * SUCH DAMAGE.
	       *
	       *      @(#)ar.h8.2 (Berkeley) 1/21/94
	       *
	       * $FreeBSD: stable/11/include/ar.h 331722 2018-03-29 02:50:57Z eadler $
	       */

	      #ifndef _AR_H_
	      #define _AR_H_

	      #include <sys/cdefs.h>

	      /* Pre-4BSD archives had these magic numbers in them. */
	      #define OARMAG10177555
	      #define OARMAG20177545

	      #define ARMAG "!<arch>0/*	ar "magic number" */
	      #define SARMAG8/*	strlen(ARMAG); */

	      #define AR_EFMT1"#1/"/* extended format #1 */

	      struct ar_hdr {
		      char ar_name[16];/* name */
		      char ar_date[12];/* modification time */
		      char ar_uid[6];/*	user id	*/
		      char ar_gid[6];/*	group id */
		      char ar_mode[8];/* octal file permissions	*/
		      char ar_size[10];/* size in bytes	*/
	      #define ARFMAG"`0
		      char ar_fmag[2];/* consistency check */
	      }	__packed;

	      #endif /*	!_AR_H_	*/

       The  name  is  a	 null-terminated  string;  the	date is	in the form of
       time(2);	the user ID and	group ID are numbers; the mode is a  bit  pat-
       tern per	chmod(2); the size is counted in bytes.

       Each  file  begins  on a	word boundary; a null byte is inserted between
       files if	necessary.  Nevertheless the size given	 reflects  the	actual
       size of the file	exclusive of padding.

       Notice there is no provision for	empty areas in an archive file.

SEE ALSO
       ar(1), ld(1), nm(1)

BUGS
       Coding user and group IDs as characters is a botch.

									 AR(5)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ar&sektion=5&manpath=Unix+Seventh+Edition>

home | help