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.




