11.2Schristos/* $NetBSD: h_read.c,v 1.2 2017/01/16 16:35:57 christos Exp $ */ 21.1Spgoyette 31.1Spgoyette/* 41.1Spgoyette * Copyright (c) 2008 The NetBSD Foundation, Inc. 51.1Spgoyette * All rights reserved. 61.1Spgoyette * 71.1Spgoyette * Redistribution and use in source and binary forms, with or without 81.1Spgoyette * modification, are permitted provided that the following conditions 91.1Spgoyette * are met: 101.1Spgoyette * 1. Redistributions of source code must retain the above copyright 111.1Spgoyette * notice, this list of conditions and the following disclaimer. 121.1Spgoyette * 2. Redistributions in binary form must reproduce the above copyright 131.1Spgoyette * notice, this list of conditions and the following disclaimer in the 141.1Spgoyette * documentation and/or other materials provided with the distribution. 151.1Spgoyette * 161.1Spgoyette * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 171.1Spgoyette * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 181.1Spgoyette * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 191.1Spgoyette * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 201.1Spgoyette * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 211.1Spgoyette * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 221.1Spgoyette * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 231.1Spgoyette * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 241.1Spgoyette * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 251.1Spgoyette * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 261.1Spgoyette * POSSIBILITY OF SUCH DAMAGE. 271.1Spgoyette */ 281.1Spgoyette 291.1Spgoyette#include <sys/cdefs.h> 301.1Spgoyette__COPYRIGHT("@(#) Copyright (c) 2008\ 311.1Spgoyette The NetBSD Foundation, inc. All rights reserved."); 321.2Schristos__RCSID("$NetBSD: h_read.c,v 1.2 2017/01/16 16:35:57 christos Exp $"); 331.1Spgoyette 341.1Spgoyette#include <sys/param.h> 351.2Schristos#include <fcntl.h> 361.2Schristos#include <paths.h> 371.1Spgoyette#include <stdio.h> 381.1Spgoyette#include <unistd.h> 391.1Spgoyette#include <stdlib.h> 401.1Spgoyette 411.1Spgoyetteint 421.1Spgoyettemain(int argc, char *argv[]) 431.1Spgoyette{ 441.1Spgoyette char b[MAXPATHLEN]; 451.2Schristos int fd, n; 461.1Spgoyette size_t len = atoi(argv[1]); 471.2Schristos 481.2Schristos if ((fd = open(_PATH_DEVZERO, O_RDONLY)) == -1) 491.2Schristos abort(); 501.2Schristos if ((n = read(fd, b, len)) == -1) 511.2Schristos abort(); 521.1Spgoyette (void)printf("%s\n", b); 531.2Schristos return (0); 541.1Spgoyette} 55