diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/lib.c | 13 | ||||
-rw-r--r-- | lib/lib.h | 1 |
2 files changed, 14 insertions, 0 deletions
@@ -1293,3 +1293,16 @@ void do_lines(int fd, void (*call)(char **pline, long len)) if (fd) fclose(fp); } + +// Returns the number of bytes taken by the environment variables. For use +// when calculating the maximum bytes of environment+argument data that can +// be passed to exec for find(1) and xargs(1). +long environ_bytes() +{ + long bytes = sizeof(char *); + char **ev; + + for (ev = environ; *ev; ev++) + bytes += sizeof(char *) + strlen(*ev) + 1; + return bytes; +} @@ -241,6 +241,7 @@ int regexec0(regex_t *preg, char *string, long len, int nmatch, char *getusername(uid_t uid); char *getgroupname(gid_t gid); void do_lines(int fd, void (*call)(char **pline, long len)); +long environ_bytes(); #define HR_SPACE 1 // Space between number and units #define HR_B 2 // Use "B" for single byte units |