freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: entropy AT freetds.org
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] FreeTDS Digest, Vol 44, Issue 4
- Date: Mon, 04 Sep 2006 13:25:09 -0400
Norbert Sendetzky wrote:
On Monday 04 September 2006 18:00, freetds-request AT lists.ibiblio.org wrote:
The problem is that your code is making assumptions about what type a
CS_INT is. If it were reasonable for your code to do that, then there
would be no such thing as a CS_INT, and instead it would just be "int"
or "long".
The most portable thing your code can do in this case is explicitly cast
to a type, then use the printf(3) format for that type.
CS_INT foo;
...
printf("%ld\n", (long) foo);
That should compile without warnings and execute properly, using FreeTDS
or Sybase headers, on any 32 or 64 bit platform.
It's not that I want to make assumptions about types but printf forces me to do so. Your example above works as long as it doesn't hit a plattform where "long" is defined as 64 bit type (e.g. Alpha, AIX). On these plattforms, it will fail miserably.
Err, no, it works just fine on Alpha where I just tested it, and I see no reason why it shouldn't work on any other platform with 64-bit longs. Can you explain why you think it should "fail miserably?" If so, perhaps I can help you see where you're going wrong.
On the other hand I don't know if there is a way out of this problem when two libraries define CS_INT different. For the moment people using the sybase backend in combination with FreeTDS have to live with this warnings.
Script started on Mon Sep 4 13:17:54 2006
sh-2.05b$ cat cs_int.c
#include <stdio.h>
#include <stdlib.h>
#include <cstypes.h>
int
main(int argc, char *argv[])
{
CS_INT foo;
foo = (CS_INT) 37;
printf("%ld\n", (long) foo);
exit(0);
}
sh-2.05b$ gcc -Wall -I/sybase/OCS/include -o cs_int cs_int.c
sh-2.05b$ ./cs_int
37
sh-2.05b$ gcc -Wall -I/usr/local/include -o cs_int cs_int.c
sh-2.05b$ ./cs_int
37
sh-2.05b$ uname -a
OSF1 hostname V4.0 1530 alpha
sh-2.05b$ exit
script done on Mon Sep 4 13:19:38 2006
--
Cheers,
entropy
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Norbert Sendetzky, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
- Re: [freetds] FreeTDS Digest, Vol 44, Issue 4, entropy, 09/04/2006
- Re: [freetds] FreeTDS Digest, Vol 44, Issue 4, Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
Christos Zoulas, 09/04/2006
-
Re: [freetds] FreeTDS Digest, Vol 44, Issue 4,
entropy, 09/04/2006
Archive powered by MHonArc 2.6.24.