svn commit: r359127 - stable/12/lib/libc/gen

Mateusz Piotrowski 0mp at FreeBSD.org
Thu Mar 19 10:31:48 UTC 2020


Author: 0mp (doc,ports committer)
Date: Thu Mar 19 10:31:46 2020
New Revision: 359127
URL: https://svnweb.freebsd.org/changeset/base/359127

Log:
  MFC 358674, 358916: Add examples to ftw.3
  
  ftw.3: Add examples
  
  PR:		173448 [1]
  Submitted by:	fernape@ (previous version) [1]
  Reviewed by:	jilles
  Approved by:	bcr (mentor)
  Differential Revision:	https://reviews.freebsd.org/D21750
  
  ftw.3: Follow style(9) in the example
  
  Reported by:	oshogbo
  Approved by:	bcr (mentor)
  Differential Revision:	https://reviews.freebsd.org/D24043

Modified:
  stable/12/lib/libc/gen/ftw.3
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/lib/libc/gen/ftw.3
==============================================================================
--- stable/12/lib/libc/gen/ftw.3	Thu Mar 19 10:20:32 2020	(r359126)
+++ stable/12/lib/libc/gen/ftw.3	Thu Mar 19 10:31:46 2020	(r359127)
@@ -20,7 +20,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd July 5, 2004
+.Dd March 12, 2020
 .Dt FTW 3
 .Os
 .Sh NAME
@@ -157,6 +157,66 @@ and
 will stop processing the tree and return the value from
 .Fa fn .
 Both functions return \-1 if an error is detected.
+.Sh EXAMPLES
+Following there is an example that shows how
+.Nm nftw
+can be used.
+It traverses the file tree starting at the directory pointed
+by the only program argument and shows the complete path and a brief
+indicator about the file type.
+.Bd -literal -offset 2n
+#include <ftw.h>
+#include <stdio.h>
+#include <sysexits.h>
+
+int
+nftw_callback(const char *path, const struct stat *sb, int typeflag, struct FTW *ftw)
+{
+	char type;
+
+	switch(typeflag) {
+	case FTW_F:
+		type = 'F';
+		break;
+	case FTW_D:
+		type = 'D';
+		break;
+	case FTW_DNR:
+		type = '-';
+		break;
+	case FTW_DP:
+		type = 'd';
+		break;
+	case FTW_NS:
+		type = 'X';
+		break;
+	case FTW_SL:
+		type = 'S';
+		break;
+	case FTW_SLN:
+		type = 's';
+		break;
+	default:
+		type = '?';
+		break;
+	}
+
+	printf("[%c] %s\\n", type, path);
+
+	return (0);
+}
+
+int
+main(int argc, char **argv)
+{
+
+	if (argc != 2) {
+		printf("Usage %s <directory>\\n", argv[0]);
+		return (EX_USAGE);
+	} else
+		return (nftw(argv[1], nftw_callback, /* UNUSED */ 1, 0));
+}
+.Ed
 .Sh ERRORS
 The
 .Fn ftw


More information about the svn-src-all mailing list