Pots Utilitzar Golf com un Framework Web per a C

Descobreix com utilitzar Golf en mode estès per integrar codi C en aplicacions web de manera eficient i segura, amb exemples pràctics i configuració a Nginx.

viernes, 7 de marzo de 2025 • 2 min de lectura • Equip Q2BSTUDIO

Empresa-Programari-Apps

Golf té un mode estès que permet utilitzar codi en C directament. Normalment, això no està permès, però si utilitzes la instrucció extended-mode al teu fitxer .golf, podràs cridar codi en C des d’ell.

En mode estès, Golf actua com un framework web per al llenguatge de programació C, permetent una major flexibilitat en el desenvolupament d’aplicacions web basades en aquest llenguatge.

A continuació, presentem un exemple de com utilitzar Golf com un framework web per a C, creant una aplicació senzilla que calcula el factorial d’un nombre i exposa aquesta funcionalitat a través d’una aplicació web.

Per crear l’aplicació, primer generem l’estructura de fitxers necessària:

mkdir -p c-for-web

cd c-for-web

Després, creem una nova aplicació a Golf:

gg -k fact

Seguidament, guardem el següent codi en un fitxer anomenat calc-fact.golf. Aquest fitxer defineix el servei web que interactuarà amb els clients i cridarà la funció en C:

extended-mode

%% /calc-fact public

get-param par

string-number par to num

set-number result

call-extended factorial(num, &result)

@Factorial de <<p-out par>> és <<p-num result>>

%%

Després, creem un fitxer factorial.c amb la implementació de la funció en C:

#include 'golf.h'

void factorial(gg_num f, gg_num *res) {

*res = 1;

gg_num i;

for (i = 2; i <= f; i++) {

*res *= i;

}

}

També afegim un fitxer factorial.h per declarar la funció utilitzada al codi de Golf:

void factorial(gg_num f, gg_num *res);

Per compilar i executar el servidor utilitzem:

gg -q

Iniciem el servidor amb:

mgrg fact

Podem provar l’aplicació des de la línia de comandes:

gg -r --req=/calc-fact/par=12 --exec --service

Això retorna:

Factorial de 12 és 479001600

Per provar-ho en un navegador web, configurem Nginx, afegint la següent línia al fitxer de configuració:

location /fact/ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:///var/lib/gg/fact/sock/sock; }

Reiniciem Nginx per aplicar els canvis:

sudo systemctl restart nginx

Accedint a la URL:

https://127.0.0.1/fact/calc-fact/par=8

El resultat serà:

Factorial de 8 és 40320

A Q2BSTUDIO, oferim solucions tecnològiques avançades i desenvolupament de programari especialitzat en diverses plataformes i llenguatges, facilitant la implementació de frameworks com Golf per a l’optimització d’aplicacions web en C. El nostre equip d’experts està preparat per ajudar-te a desenvolupar solucions robustes i eficients adaptades a les necessitats del teu negoci.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.