No y sí.
No, no se comparten de ninguna manera que sea visible para el programador; los procesos pueden modificar sus propias copias de las variables de forma independiente y cambiarán sin ningún efecto notorio en los otros procesos que son fork() padres, hermanos o descendientes.
Pero sí, el sistema operativo realmente comparte las páginas inicialmente, porque fork implementa copy-on-write, lo que significa que si ninguno de los procesos modifica las páginas, se comparten. Esta es, sin embargo, una optimización que puede ser ignorada.
Si desea tener variables compartidas, colóquelas en un mapeo compartido anónimo (vea mmap()) en cuyo caso se compartirán realmente, con todas las advertencias que vienen con eso.
Estoy de acuerdo con Tom. Podrías haber generado el valor de ambos procesos y haber visto tu salida. Sin embargo, recuerde dormir en el que no espera un aumento en el myvar para que no se ejecute antes de que el otro proceso lo incremente (aunque no lo hará). Pero sí, solo ejecútalo y mira. – Loduwijk
Tenga en cuenta el comentario engañoso: en realidad, el proceso padre incrementa el contador (a menos que el fork falló) y el proceso secundario no hace nada excepto salir inmediatamente. –
Primero, no está verificando el fracaso. En segundo lugar, solo se comparten los descriptores de archivos. – tchrist