Tengo un programa C que intenta modificar un literal de cadena const. Como ahora aprendí que esto no está permitido.¿por qué clang ++ se comporta de manera diferente a clang ya que el primero es un enlace simbólico de este último?
Cuando compilo el código con clang test.c
el compilador no da ninguna advertencia. Pero cuando compilo con clang++ test.c
da una advertencia:
test.c: 6: 15: advertencia: la conversión de cadena literal a 'char *' está obsoleto [-Wdeprecated-grabables-strings] Char * s = "hola mundo"; ^
El problema es que resulta que clang++
es sólo un enlace símbolo de clang
:
ll `which clang++`
lrwxr-xr-x 1 root admin 5 Jan 1 12:34 /usr/bin/[email protected] -> clang
Así que mi pregunta es ¿cómo podría clang++
se comporta de forma diferente a partir clang
dado que es un enlace símbolo de clang
?
¿Quiere decir que _bash_ está mirando 'argv [0]' y alterando el comportamiento? ¿Así que está codificado en bash que 'clang ++' se comporta de forma diferente a 'clang'? – RockU
Lo siento, no pensé lo suficiente. Está codificado en 'clang'. Gracias :) – RockU
¿Podría obtener una cita sobre esta técnica que es "poco común y desalentada"? No es para golpear, solo curiosidad. –