Most operating systems have an option when browsing the filesystem to open a specific file with an application that the user chooses. Of course, this means sending arguments to a program in one way or another, and that the programmer must add some way of recognizing these arguments and using them to process the data.