AUSAM/source/libc/getoffset.c

Compare this file to the similar file:
Show the results in this format:

#
#include <local-system>
#include	<passwd.h>

long getoffset(fd)
{
/*
 *	Returns the long length of the file for which "fd"
 *	is a file descriptor. This may then be used as a seek address.
 */

struct
	{
	unsigned	hiword;
	unsigned	loword;
	};

long offset;

struct inode
	{
	int	i_dev;		/* device where inode resides */
	int	i_number;	/* i number, 1-to-1 with device address */
	int	i_mode;
	char	i_nlink;	/* directory entries */
	char	i_uid;		/* owner */
	char	i_gid;		/* group of owner */
	char	i_size0;	/* most significant of size */
	unsigned i_size1;	/* least sig */  /* fix000 */
	int	i_addr[8];	/* device addresses constituting file */
	long	i_atime;		/* fix000 */
	long	i_mtime;		/* fix000 */
	} stat;

fstat(fd,&stat);

offset.loword=stat.i_size1;
offset.hiword=stat.i_size0 & 0377;
return (offset);
}