is there any way to write ? mark in a file name
On a windows platform? No this is an invalid character for names in the windows file system.
The Wikipedia entry on file names has a pretty extensive breakdown on what characters are reserved for various operating systems and file system combos. Here is the link
No, since it is a wildcard such as * is.
See here:
Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:
* The following reserved characters:
< > : " / \ | ? *
* Integer value zero, sometimes referred to as the ASCII NUL character.
* Characters whose integer representations are in the range from 1 through 31,except for streams. For more information about file streams, see File Streams.
It is possible on the Linux and OSX file systems, although I am pretty sure that Windows does not permit this.
I seem to remember that you could do something like this way back when with MS-DOS if you used one of the v1.x functions (using an FCB instead of a file handle). I wonder if any even remotely recent versions of Windows would successfully run such a beast (assuming that I'm event right about DOS letting you do it)?
Drop a note if you decide to give it a try (if you can even dig up the tools).
Yes, you can write ? in a file name just like you can have a file without a name and only an extension.
This would require an FTP upload or opening the media in ASCII format.
According to the NTFS article in wiki, it is possible to use other characters:
In Posix namespace, any UTF-16 code unit (case sensitive) except U+0000 (NUL) and / (slash)
I don't know if you must have a separated partition for that, or a different API calls into the POSIX system would allow you to use special characters.