Recently I’ve been working on an online news portal being rebuilt with the MERN stack. One of the critical requirements is a WYSIWYG editor (like one present in wordpress), that is fully compatible with react and the MERN stack. One of the more popular wysiwyg editor, the CKEditor is built to work on php applications, so I had to look for something that would be perfect for the MERN stack. Upon searching I came across a library called React Draft WYSIWYG.
Today we are going to discuss FILE SYSTEM operations using the C language. Till now we have worked with the RAM for storing our variables and our data. But the RAM is not persistent. We need to store data permanently. So we store them in permanent memory like hard disks or CDs/DVDs, in files. Different types of data are stored in different type of files, but for our purposes we’ll work with text files in windows system which have an extension of ‘.txt‘.
Today we’re going to discuss two topics which are rarely taught in a C programming college course, Unions & Enums. One may justify that by saying they are not absolutely necessary for basic knowledge in programming, or that these topics are rarely asked in interviews. But if you become a professional C developer, you’ll have extensive use of them. These are particularly useful in low level programming, like with embedded systems and robotics.
One of the main motivations in the development of computers was data processing. One of the earliest punched card machines (tabulation machine) were used to help process data for the 1890 U.S. Census. Thus in programming languages data types were so important, as there are tools and methods to process data according to their type.
The process of allocating memory while a program is running is called dynamic memory allocation. In C programming, dynamic memory allocation is achieved with the standard library functions malloc(), calloc(), realloc() and free().
To proceed to the next sections in our discussion on C programming language, we should learn the concept of void pointers, i.e. pointers of no specific type, and type casting, i.e. manually changing the data type of a variable. Type conversion can happen automatically (implicitly) or manually (explicitly). The later is termed as type-casting.
Pointers are used extensively in array operations. The name of the array is actually a reference to the address of the first element, rather than the actual array. Thus the array name is a pointer. So when we pass an array as an argument to a function, we are not actually passing a copy of the array (as we do in case of a variable), but we are passing a copy of the pointer to the first element of that array. This is the “pass by reference” hack that we discussed earlier.