From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E6305C433E0 for ; Wed, 17 Jun 2020 19:07:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CC3082075E for ; Wed, 17 Jun 2020 19:07:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726758AbgFQTHt (ORCPT ); Wed, 17 Jun 2020 15:07:49 -0400 Received: from gateway31.websitewelcome.com ([192.185.143.234]:48696 "EHLO gateway31.websitewelcome.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726913AbgFQTHt (ORCPT ); Wed, 17 Jun 2020 15:07:49 -0400 X-Greylist: delayed 1293 seconds by postgrey-1.27 at vger.kernel.org; Wed, 17 Jun 2020 15:07:48 EDT Received: from cm10.websitewelcome.com (cm10.websitewelcome.com [100.42.49.4]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 4BF7C7679D for ; Wed, 17 Jun 2020 13:46:15 -0500 (CDT) Received: from gator3278.hostgator.com ([198.57.247.242]) by cmsmtp with SMTP id ld4gj2wPJXGIkld4hjZbyR; Wed, 17 Jun 2020 13:46:15 -0500 X-Authority-Reason: nr=8 Received: from 89-69-237-178.dynamic.chello.pl ([89.69.237.178]:46324 helo=comp.lan) by gator3278.hostgator.com with esmtpa (Exim 4.93) (envelope-from ) id 1jld4g-001DHn-B9; Wed, 17 Jun 2020 13:46:14 -0500 From: Arkadiusz Drabczyk To: mtk.manpages@gmail.com Cc: linux-man@vger.kernel.org Subject: [PATCH] fread.3: Add example Date: Wed, 17 Jun 2020 20:45:30 +0200 Message-Id: <20200617184530.20811-1-arkadiusz@drabczyk.org> X-Mailer: git-send-email 2.9.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3278.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - drabczyk.org X-BWhitelist: no X-Source-IP: 89.69.237.178 X-Source-L: No X-Exim-ID: 1jld4g-001DHn-B9 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 89-69-237-178.dynamic.chello.pl (comp.lan) [89.69.237.178]:46324 X-Source-Auth: arkadiusz@drabczyk.org X-Email-Count: 1 X-Source-Cap: cmt1bXZicmg7cmt1bXZicmg7Z2F0b3IzMjc4Lmhvc3RnYXRvci5jb20= X-Local-Domain: yes Sender: linux-man-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-man@vger.kernel.org Signed-off-by: Arkadiusz Drabczyk --- man3/fread.3 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/man3/fread.3 b/man3/fread.3 index 2dd7be9..c19a59c 100644 --- a/man3/fread.3 +++ b/man3/fread.3 @@ -113,6 +113,59 @@ T} Thread safety MT-Safe .TE .SH CONFORMING TO POSIX.1-2001, POSIX.1-2008, C89. +.SH EXAMPLES +The program below demonstrates the use of +.BR fread () +by parsing /bin/sh ELF executable in binary mode and printing its +magic and class: +.PP +.in +4n +.EX +$ \fB./a.out\fP +./a.out +ELF magic: 0x7f454c46 +Class: 0x2 +.EE +.in +.SS Program source +\& +.EX +#include +#include + +int +main(void) +{ + FILE *fp = fopen("/bin/sh", "rb"); + if (!fp) { + perror("fopen"); + return EXIT_FAILURE; + } + + unsigned char buffer[4]; + + size_t ret = fread(buffer, 4, 1, fp); + if (ret != 1) { + fprintf(stderr, "fread() failed: %zu\en", ret); + exit(EXIT_FAILURE); + } + + printf("ELF magic: %#x%x%x%x\en", buffer[0], buffer[1], buffer[2], + buffer[3]); + + ret = fread(buffer, 1, 1, fp); + if (ret != 1) { + fprintf(stderr, "fread() failed: %zu\en", ret); + exit(EXIT_FAILURE); + } + + printf("Class: %#x\en", buffer[0]); + + fclose(fp); + + exit(EXIT_SUCCESS); +} +.EE .SH SEE ALSO .BR read (2), .BR write (2), -- 2.9.0