#Dyalog APL 15.0, 17 bytes (non-competing)
Dyalog APL 15.0, 17 bytes (non-competing)
(⊢⊣⊃⎕NPUT⊢)⍣≢'A'1
Chrome currently renders U+2262 wrong. The above line should look like (⊢⊣⊃⎕NPUT⊢)⍣̸≡'A'1.
This is non-competing because version 15 has not been released yet.
Applies ⍣ the function (⊢⊣⊃⎕NPUT⊢) on 'A'1 until the input is changed (i.e. never):
⊢⊣⊃⎕NPUT⊢ is a function train:
┌─┼───┐
⊢ ⊣ ┌─┼─────┐
⊃ ⎕NPUT ⊢
The rightmost ⊢ returns 'A'1 unmodified; this (filename, overwrite-flag) will be the right argument to `⎕NPUT'.
'⊃' returns the first element of 'A'1 ('A'); this is the data to be written.
Then ⎕NPUT is run, and reports how many bytes were written (2 or 3 depending on OS); this becomes the right argument to the ⊣.
The leftmost ⊢ again returns 'A'1 unmodified; this is the left argument to the ⊢.
⊣ ignores its right argument and returns the left argument ('A'1), this becomes the new value fed to ⍣.
Since the new value is identical to the old one, the operation is continued (forever).