[ih] 13 the unlucky number

Joseph Touch touch at strayalpha.com
Tue Aug 11 11:12:35 PDT 2020


FYI, some code appears to use stroul() with a base of “0”, which works basically like scanf() with %i.

Joe

> On Aug 11, 2020, at 10:57 AM, Patrick W. Gilmore via Internet-history <internet-history at elists.isoc.org> wrote:
> 
> I believe MacOS (I’m on Catalina, 10.15, but pretty sure previous versions are the same) is doing %I. The leading 0 is forcing octal. Removing the leading zero lets the OS see decimal. For instance:
> 
> patrick at TiggerBook-C-32 ~ % ping 10.010.010.10 
> PING 10.010.010.10 (10.8.8.10): 56 data bytes
> 
> -- 
> TTFN,
> patrick
> 
>> On Aug 11, 2020, at 1:51 PM, Joseph Touch via Internet-history <internet-history at elists.isoc.org> wrote:
>> 
>> It seems like the input functions of the implementations vary. When using scanf:
>> 
>> 	%d, %x, %o 	= interpret the input as only decimal, hex, or octal (respectively)
>> 
>> 	%I			= interpret the input based on its format:
>> 						0x… 	= hex
>> 						0…		= octal
>> 						(1-9)…	= decimal
>> 						0b…	= binary (in some systems)
>> 
>> It looks like MacOS is using %d and linux/others are using %I
>> 
>> Joe
>> 	
>> 
>>> On Aug 11, 2020, at 9:50 AM, Carsten Bormann via Internet-history <internet-history at elists.isoc.org> wrote:
>>> 
>>> On 2020-08-11, at 01:58, Alejandro Acosta via Internet-history <internet-history at elists.isoc.org> wrote:
>>>> 
>>>>    010.rrr.rrr.rrr   ARPANET       ARPANET [17,1,VGC]
>>> 
>>> Off-topic, but I can’t read this in any other way than as an octal number.
>>> 
>>> $ ping 010.010.010.010
>>> PING 010.010.010.010 (8.8.8.8) 56(84) bytes of data.
>>> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=6.35 ms
>>> $ ping 134744072
>>> PING 134744072 (8.8.8.8) 56(84) bytes of data.
>>> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=6.31 ms
>>> $ ping 01002004010
>>> PING 01002004010 (8.8.8.8) 56(84) bytes of data.
>>> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=6.31 ms
>>> $ ping 0x8080808
>>> PING 0x8080808 (8.8.8.8) 56(84) bytes of data.
>>> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=6.30 ms
>>> 
>>> Does anyone remember how this misfeature crept into the C library?
>>> (I seem to remember seeing it all the way back to 4.2BSD.  
>>> It no longer works with macOS, but still does on the Linuxes I tried.)
>>> 
>>> Grüße, Carsten
>>> 
>>> -- 
>>> Internet-history mailing list
>>> Internet-history at elists.isoc.org
>>> https://elists.isoc.org/mailman/listinfo/internet-history
>> 
>> -- 
>> Internet-history mailing list
>> Internet-history at elists.isoc.org
>> https://elists.isoc.org/mailman/listinfo/internet-history
> 
> -- 
> Internet-history mailing list
> Internet-history at elists.isoc.org
> https://elists.isoc.org/mailman/listinfo/internet-history




More information about the Internet-history mailing list