Un programa que puede interactuar con el sistema operativo independientemente del sistema operativo en el que se ejecute. En palabras simples, podemos decir que un programa, que puede ejecutarse en una computadora sin depender del sistema operativo.
¿Cómo escribir un programa de utilidad que enumere todos los contenidos del directorio independientemente del sistema operativo?
La mayoría de los compiladores de C/C++ definen macros que se pueden usar para detectar sistemas operativos. Por ejemplo, en GCC, las siguientes son macros comunes.
_WIN32 : Defined for both 32 bit and 64 bit windows OS. _WIN64 : Defined for 64 bit windows OS. unix, __unix, __unix__ : Defined in UNIX OS __APPLE__, __MACH__ : Defined in Mac OS
En Windows, usamos dir call para enumerar todos los directorios, y en la mayoría de los otros sistemas operativos se usa «ls». A continuación se muestra una implementación simple de C++ para enumerar directorios de carpetas independientemente del sistema operativo.
C++
// C++ program to list all directories. #include <bits/stdc++.h> using namespace std; int main() { #ifdef _WIN32 system("dir"); #else system("ls"); #endif return 0; }
C
// C program to list all directories. #include <stdio.h> int main() { #ifdef _WIN32 system("dir"); #else system("ls"); #endif return 0; }
Producción:
bin boot dev etc home lib lib64 media mnt opt proc run sbin srv sys tmp usr var
El código independiente del sistema operativo anterior es totalmente diferente de la independencia de la plataforma de Java. En Java, hay un código de byte intermedio que es una forma muy limpia de manejar las dependencias de la plataforma. Aquí tenemos que recordar las macros específicas del compilador y escribir el código usando torpes #ifdef y #else, y lo más importante, necesitamos volver a compilar el código para cada sistema operativo.
Este artículo es una contribución de Shubham Agrawal . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA