C Programming

Posix Open Function with C Programming

The concept of file handling is extensively used in all programming languages. Specifically for C and C++, you will find a vast literature on the information regarding the concept of file handling. Whenever you want to access or modify a file in C or C++, you must open it first, either for reading or writing. The task of opening a file is accomplished with the help of the Posix Open function.

This function contains a set of parameters that are passed along with this function to open a specified file. We will discuss these parameters in the next heading of our article. However, the main goal of this article is to educate you about the usage of the Posix Open function in Linux Mint 20. In this article, learn how the Open function works with C programming.

Parameters of the Posix Open Function

The Posix Open function contains two parameters that are further divided into various types. The first parameter is known as the Path, which refers to the location of the file that you wish to open. If you are creating your C code to open a file in the same directory in which the file to be opened resides, then you just have to write the name of the file and omit its path. However, if the file to be opened resides in any other directory, then you must specify its complete path as a parameter to the Open function followed by the forward-slash (“/”).

The second parameter of the Posix Open function is known as the Flag, which refers to the options with which you can open a file. These options are read-only, write-only, read and write, create file, and prevent file creation. The corresponding flags of these operations are O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, and O_EXCL respectively. You can either use one of these flags at a time or you can combine more than one flag at once, depending on your requirements, separated by the “|” symbol. You will begin to understand these flags more clearly after reading the example given below.

Example: Using the Posix Open Function in Linux Mint 20

To provide an example of using the Posix Open function with C programming in Linux Mint 20, we have created a program that attempts to open a file. If that file already exists, then this function will simply open it; otherwise, the function will create a file with the specified name. Now, we will take a look at all the stages of execution of this program, beginning with its creation.

Step 1: Create Sample Program to Test Posix Open Function

Here, we have created a document in the Home directory of our Linux Mint 20 system and named it OpenFunction.c. After creating this document, we will open it and type the code shown in the image below in that file.

In the code shown in the image above, we have created an integer variable, named fd, which refers to the File Descriptor. This variable will be assigned the return value of the Open function. The value of this variable will be “3” if the Open function executes successfully. Otherwise, its value will be “-1.” In the parameters of the Open function, we have provided a filename, i.e., “NewFile.txt.” This file did not exist in our system before, which means that our Open function will create this file.

Also, we have specified via the flags of the Open function that if the file already exists, then the file should be opened in the read-only mode; whereas if it does not exist, then the Open function will simply create a file with the specified name. We have also specified that if the value of the fd variable is less than zero, then the function will also print the error that occurred while opening the specified file. Finally, you can save your code by pressing Ctrl + S.

Step 2: Compile Sample Program

After writing the sample program, we will launch the terminal to compile it with the following command:

$ gcc OpenFunction.c –o OpenFunction

Here, OpenFunction.c refers to the sample program file that we wish to compile, whereas OpenFunction after the “-o” flag refers to the object file that will be created after compilation.

If the compilation of our sample program is carried out successfully, then we will not see any error messages in the terminal after running the program, as shown in the image below:

Step 3: Run Sample Program

Finally, after compiling our sample program, we can run it in Linux Mint 20 by issuing the following command:

$ ./OpenFunction

Here, “OpenFunction” refers to the same object file that was created following the compilation of our sample program.

You can see in the output of our sample program in the image below that the value of our File Descriptor variable, i.e., fd, is “3.” This output means that the code has been executed successfully. In other words, a file named “NewFile.txt” has been created successfully, since the file did not exist previously in our system. If you want, you can even go and check it out in your Home directory to verify whether the file has been created.


Today’s tutorial showed you how to use the Posix Open function with C programming in Linux Mint 20. Hopefully, the provided example will be sufficient to emphasize the importance of this function. No matter what the reason for opening a file, you still have to use this function to gain access to a file. Without this function, you will not be able to access any files. Therefore, you must learn the usage of this function before performing file handling in C and C++.

About the author

Aqsa Yasin

I am a self-motivated information technology professional with a passion for writing. I am a technical writer and love to write for all Linux flavors and Windows.