on 64-bit platforms, size_t is probably 64 bits, while int is probably 32 (not always the case though, and is sometimes compiler or compiler-setting specific. Anyway, you should use
To test to see how long each is, do:
I am trying to compile a c program on AIX 5.3L 64-bit unix.
I have used this program in the past and it works.
Does anybody know what this error means?
/usr/local/bin> gcc get_epoch_secs.c get_epoch_secs
gcc: get_epoch_secs: No such file or directory
get_epoch_secs.c: In function... (8 Replies)
Hi all,
When i use the command ps , it throws the error like this
"ld.so.1: ps: fatal: /lib/libc.so.1: wrong ELF class: ELFCLASS32
Killed"
Some of the commands will work.say for e.g. who,cp but w will not work.
Please can anyone help me on this to solve this... (7 Replies)
Hi ,
could you please clarify me the difference between sun sparc 32-bit and sun sparc 64-bit?
means on which processors these are supporting (pentium processors, sun sparc processors)
Regards,
Rajesh (1 Reply)
Hi,
I am using 32 bit machine, and I want to compile 64 bit application on 32-bit machine.
So please tell me is it possible or not?
Regards
Mandar (7 Replies)
I downloaded the iso image from here and burnt it on DVD.
But when I tried installing it..it said boot device not availiable. Do I have to make it bootable?
Is there any other component that I need to write on DVD other than the image?
Moreover the DVD which I received from my admin for... (5 Replies)
Can someone try to compile this older version of xtide (attached) on 64-bit Intel/Linux and upload the xttpd binary? I have a friend who needs an older version up and running because the newer version does not support his required harmonic files.
Thanks! (7 Replies)
I have a 32bit number and without using for loop,I want to set mbit to n bit.
Say m bit may be 2nd or 5th or 9th or 10th.n bit may be 22nd or 27or 11th bit.
I assume m<n.
Please help me.Thanks
acdc (6 Replies)
Hi,
I am trying to build python(2.7.9) 64 bit from source on solaris10. Using the below to compile
./configure CFLAGS=-m64 LDFLAGS=-m64
But getting errors like below while executing make
make: Fatal error: Command failed for target `libinstall'
OS info:
isainfo -v
64-bit amd64... (9 Replies)
Discussion started by: Sumanthsv
9 Replies
LEARN ABOUT DEBIAN
ggstrlcat
ggstrlcpy(3) GGI ggstrlcpy(3)NAME
ggstrlcpy, ggstrlcat - size-bounded string copying and concatenation
SYNOPSIS
#include <ggi/gg.h>
size_t ggstrlcpy(char *dst, const char *src, size_t siz);
size_t ggstrlcat(char *dst, const char *src, size_t siz);
DESCRIPTION
The ggstrlcpy and ggstrlcat functions copy and concatenate strings respectively. They are designed to be safer, more consistent, and less
error prone replacements for strncpy(3) and strncat(3). Unlike those functions, ggstrlcpy and ggstrlcat take the full size of the buffer
(not just the length) and guarantee to NUL-terminate the result (as long as size is larger than 0 or, in the case of ggstrlcat, as long as
there is at least one byte free in dst). Note that you should include a byte for the NUL in size. Also note that ggstrlcpy and ggstrlcat
only operate on true C strings. This means that for ggstrlcpy src must be NUL-terminated and for ggstrlcat both src and dst must be NUL-
terminated.
The ggstrlcpy function copies up to siz - 1 characters from the NUL-terminated string src to dst, NUL-terminating the result.
The ggstrlcat function appends the NUL-terminated string src to the end of dst. It will append at most siz - strlen(dst) - 1 bytes, NUL-
terminating the result.
RETURN VALUES
The ggstrlcpy and ggstrlcat functions return the total length of the string they tried to create. For ggstrlcpy that means the length of
src. For ggstrlcat that means the initial length of dst plus the length of src. While this may seem somewhat confusing it was done to
make truncation detection simple.
Note however, that if ggstrlcat traverses size characters without finding a NUL, the length of the string is considered to be size and the
destination string will not be NUL-terminated (since there was no space for the NUL). This keeps ggstrlcat from running off the end of a
string. In practice this should not happen (as it means that either size is incorrect or that dst is not a proper C string). The check
exists to prevent potential security problems in incorrect code.
EXAMPLES
The following code fragment illustrates the simple case:
char *s, *p, buf[BUFSIZ];
...
(void)ggstrlcpy(buf, s, sizeof(buf));
(void)ggstrlcat(buf, p, sizeof(buf));
To detect truncation, perhaps while building a pathname, something like the following might be used:
char *dir, *file, pname[MAXPATHLEN];
...
if (ggstrlcpy(pname, dir, sizeof(pname)) >= sizeof(pname))
goto toolong;
if (ggstrlcat(pname, file, sizeof(pname)) >= sizeof(pname))
goto toolong;
Since we know how many characters we copied the first time, we can speed things up a bit by using a copy instead of an append:
char *dir, *file, pname[MAXPATHLEN];
size_t n;
...
n = ggstrlcpy(pname, dir, sizeof(pname));
if (n >= sizeof(pname))
goto toolong;
if (ggstrlcpy(pname + n, file, sizeof(pname) - n) >= sizeof(pname) - n)
goto toolong;
However, one may question the validity of such optimizations, as they defeat the whole purpose of ggstrlcpy and ggstrlcat.
SEE ALSO snprintf(3)strncat(3)strncpy(3)HISTORY
strlcpy and strlcat first appeared in OpenBSD 2.4, then in NetBSD 1.4.3 and FreeBSD 3.3.0. ggstrlcpy and ggstrlcat has been added to libgg
for portability.
libgg-1.0.x 2005-08-26 ggstrlcpy(3)