Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
18 changes: 18 additions & 0 deletions laborator/content/etapele-compilarii/01-one-diy/a-dynamic/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
CFLAGS = -fno-PIC -m32 -g
LDFLAGS = -no-pie -m32

.DEFAULT_GOAL: all

.PHONY: all clean

all: name

name: name.o
$(CC) $(LDFLAGS) -o $@ $^
#ld -dynamic-linker /lib/ld-linux.so.2 -m elf_i386 -o $@ /usr/lib32/crt1.o /usr/lib32/crti.o $^ -lc /usr/lib32/crtn.o

name.o: name.c

clean:
-rm -f name name.o
-rm -f *~
18 changes: 18 additions & 0 deletions laborator/content/etapele-compilarii/01-one-diy/b-static/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
CFLAGS = -fno-PIC -m32 -g
LDFLAGS = -static -no-pie -m32

.DEFAULT_GOAL: all

.PHONY: all clean

all: name

name: name.o
$(CC) $(LDFLAGS) -o $@ $^
#ld -static -m elf_i386 -L/usr/lib/gcc/x86_64-linux-gnu/7/32/ -o $@ /usr/lib32/crt1.o /usr/lib32/crti.o $^ --start-group -lc -lgcc -lgcc_eh --end-group /usr/lib32/crtn.o

name.o: name.c

clean:
-rm -f name name.o
-rm -f *~

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const char *init_shopping[3];

void shopping_list(void)
void init_shopping(void)
{
init_shopping[0] = "cheese";
init_shopping[1] = "wine";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
#define STATE_H_ 1

void init_shopping(void);
extern const char *shopping_list[3];
const char *shopping_list[3];

#endif
33 changes: 19 additions & 14 deletions laborator/content/operatii-memorie-gdb/1-iterate/iterate.c
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
// SPDX-License-Identifier: BSD-3-Clause

#include <stdio.h>

/*
* Afisati adresele elementelor din vectorul "v" impreuna cu valorile
* de la acestea.
* Parcurgeti adresele, pe rand, din octet in octet,
* din 2 in 2 octeti si apoi din 4 in 4.
*/

int main(void)
{
int v[] = {0xCAFEBABE, 0xDEADBEEF, 0x0B00B135, 0xBAADF00D, 0xDEADC0DE};

(void) v;

return 0;
printf("Parcurgere octet cu octet:\n");
unsigned char *char_ptr = (unsigned char *)v;
for (int i = 0; i < sizeof(v); i++) {
printf("%p -> 0x%x\n", char_ptr, *char_ptr);
char_ptr++;
}
printf("\nParcurgere doi octeți la un pas:\n");
char_ptr = (unsigned char *)v;
for (int i = 0; i < sizeof(v); i += 2) {
printf("%p -> 0x%x%x\n", char_ptr, *char_ptr, *(char_ptr + 1));
char_ptr += 2;
}
printf("\nParcurgere patru octeți la un pas:\n");
char_ptr = (unsigned char *)v;
for (int i = 0; i < sizeof(v); i += 4) {
printf("%p -> 0x%x%x%x%x\n", char_ptr, *char_ptr, *(char_ptr + 1), *(char_ptr + 2), *(char_ptr + 3));
char_ptr += 4;
}
return 0;
}
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,26 @@
#include <string.h>
#include <stdlib.h>

char *delete_first(char *s, char *pattern);
char *delete_first(char *s, char *pattern){
int i = 0, cnt = 0, ans = 0, gasit = 0;
char *rez= malloc(strlen(s));
for(i = 0; i < strlen(s); i++){
int ci = i;
cnt = 0;
while(gasit == 0 && ci < strlen(s) && s[ci] == pattern[cnt]){
cnt++;
ci++;
if(cnt == strlen(pattern)){
gasit = 1;
i = ci;
break;
}
}
rez[ans] = s[i];
ans++;
}
return rez;
}

int main(void)
{
Expand All @@ -14,12 +33,7 @@ int main(void)
*/
char *s = "Ana are mere";
char *pattern = "re";

(void) s;
(void) pattern;

// Decomentați linia după ce ați implementat funcția delete_first.
// printf("%s\n", delete_first(s, pattern));
printf("%s\n", delete_first(s, pattern));

return 0;
}
Binary file not shown.