setting the direction as out for gpio4 changes is state.
echo 'out' > gpio4/direction
changes its value to 0.
How can I initialize the direction of a GPIO with out altering its value?
Setting the GPIO to the output state must assign a value. When it acts as an input it is in a high impedance state, i.e. is not being pulled low or high by the controller. Setting the pin to output will select either one of these. You can avoid glitching and initially select high by:
echo 'high' > gpio4/direction
or low by:
echo 'low' > gpio4/direction
The pi does also, however, have weak internal pull up and down resistors. These are software configurable, and mostly pull down by default. These can't be configured by sysfs, you must use wiringPi or a memory map to do change them.
Note that on the SCL and SDA pins (for i2c) the pi has external pull-up resistors which can't be overriden.
For more information on the sysfs gpio control, see: https://www.kernel.org/doc/Documentation/gpio/sysfs.txt