Probably since you never allocated any memory to sBuf. Try malloc() before assigning a value to it.


-----Original Message-----
From: [] On Behalf Of Lim Hock-Chai
Sent: den 29 januari 2010 22:58
To: C programming iSeries / AS400
Subject: [C400-L] Basic c question ==> atol

does anyone know why the result of this atol is 2147483647?

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {

long num;
char *sBuf;

sBuf = "6027461692 ";
num = atol(sBuf); //=> why would this result in 2147483647?

This is the C programming iSeries / AS400 (C400-L) mailing list To post a message email: C400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at

Capgemini is a trading name used by the Capgemini Group of companies which includes Capgemini Sverige AB, a company registered in Sweden (number 556092-3053) whose registered office is at Gustavslundsv?gen 131 Box 825 - S-161 24 Bromma.

This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is
intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to
read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message
in error, please notify the sender immediately and delete all copies of this message.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].