diff --git a/0x18-dynamic_libraries/.100-operations.so.swp b/0x18-dynamic_libraries/.100-operations.so.swp new file mode 100644 index 0000000..d0ab5b4 Binary files /dev/null and b/0x18-dynamic_libraries/.100-operations.so.swp differ diff --git a/0x18-dynamic_libraries/1-create_dynamic_lib.sh b/0x18-dynamic_libraries/1-create_dynamic_lib.sh new file mode 100755 index 0000000..ac3eaff --- /dev/null +++ b/0x18-dynamic_libraries/1-create_dynamic_lib.sh @@ -0,0 +1,4 @@ +#!/bin/bash +gcc -fPIC -c *.c +gcc -shared *.o -o liball.so + diff --git a/0x18-dynamic_libraries/100-operations.c b/0x18-dynamic_libraries/100-operations.c new file mode 100644 index 0000000..52584aa --- /dev/null +++ b/0x18-dynamic_libraries/100-operations.c @@ -0,0 +1,30 @@ +#include + +int add(int a, int b) { + return a + b; +} + +int sub(int a, int b) { + return a - b; +} + +int mul(int a, int b) { + return a * b; +} + +int div(int a, int b) { + if (b == 0) { + printf("Error: Division by zero\n"); + return 0; + } + return a / b; +} + +int mod(int a, int b) { + if (b == 0) { + printf("Error: Division by zero\n"); + return 0; + } + return a % b; +} + diff --git a/0x18-dynamic_libraries/100-operations.o b/0x18-dynamic_libraries/100-operations.o new file mode 100644 index 0000000..0eb8388 Binary files /dev/null and b/0x18-dynamic_libraries/100-operations.o differ diff --git a/0x18-dynamic_libraries/100-operations.so b/0x18-dynamic_libraries/100-operations.so new file mode 100755 index 0000000..df38e7b Binary files /dev/null and b/0x18-dynamic_libraries/100-operations.so differ diff --git a/0x18-dynamic_libraries/101-make_me_win.sh b/0x18-dynamic_libraries/101-make_me_win.sh new file mode 100755 index 0000000..b5cc447 --- /dev/null +++ b/0x18-dynamic_libraries/101-make_me_win.sh @@ -0,0 +1,4 @@ +#!/bin/bash +wget -P /tmp https://github.com/mahmoudkhalef/alx-low_level_programming/raw/master/0x18-dynamic_libraries/libgiga.so +export LD_PRELOAD=/tmp/libgiga.so + diff --git a/0x18-dynamic_libraries/README.md b/0x18-dynamic_libraries/README.md new file mode 100644 index 0000000..2847721 --- /dev/null +++ b/0x18-dynamic_libraries/README.md @@ -0,0 +1 @@ +dynamiclib diff --git a/0x18-dynamic_libraries/libdynamic.so b/0x18-dynamic_libraries/libdynamic.so new file mode 100755 index 0000000..9ec86e4 Binary files /dev/null and b/0x18-dynamic_libraries/libdynamic.so differ diff --git a/0x18-dynamic_libraries/libgiga.so b/0x18-dynamic_libraries/libgiga.so new file mode 100755 index 0000000..b7ad6f4 Binary files /dev/null and b/0x18-dynamic_libraries/libgiga.so differ diff --git a/0x18-dynamic_libraries/main.h b/0x18-dynamic_libraries/main.h new file mode 100644 index 0000000..aadc296 --- /dev/null +++ b/0x18-dynamic_libraries/main.h @@ -0,0 +1,29 @@ +#ifndef MAIN_H +#define MAIN_H + +#include +#include + +int _putchar(char c); +int _islower(int c); +int _isalpha(int c); +int _abs(int n); +int _isupper(int c); +int _isdigit(int c); +int _strlen(char *s); +void _puts(char *s); +char *_strcpy(char *dest, char *src); +int _atoi(char *s); +char *_strcat(char *dest, char *src); +char *_strncat(char *dest, char *src, int n); +char *_strncpy(char *dest, char *src, int n); +int _strcmp(char *s1, char *s2); +char *_memset(char *s, char b, unsigned int n); +char *_memcpy(char *dest, char *src, unsigned int n); +char *_strchr(char *s, char c); +unsigned int _strspn(char *s, char *accept); +char *_strpbrk(char *s, char *accept); +char *_strstr(char *haystack, char *needle); + +#endif /* MAIN_H */ +