Göra en Text editor för Linux. [var: GCC och Unicode]

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Tackar för svar.
Tyvärr verkar det vara buildtime tools. Här behövs något runtime.

Använder t.ex libhandle = dlopen("libsomething.so", RTLD_LAZY);
guckrum
Inlägg: 1669
Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av guckrum »

Svälj stoltheten, var modern och länka statiskt.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Kan jag bara få reda på var libsen finns skall det nog lösa sig att hitta något om det finns där.

Det där med dynamisk laddning i Linux verkar vara bristfälligt på många sätt.
Om det finns en headerfile till ett lib, hur f*n skapar jag en typad pekare till en av funktionerna i headern?

Det enda jag kommit på är att kopiera från headerfilen till en egen typedef. Ett helt öppet funktionsanrop är inget bra alls, där misstg som annars skulle fastna i kompilern accepteras.
SvenW
Inlägg: 1116
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av SvenW »

fungerar inte följande sätt om man ha dynamisk länkning?

Kod: Markera allt

#include <stdio.h>
#include <math.h>
 
int main () {
  double (*sss ) (double x);
  double xx;
  
  sss = &sin;
  xx = sss(0.123);

  printf ("%lf", xx);  
}
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Det gör det nog, men då är ju typningen omdeklarerad. Det finns inget sätt att med en referens till den deklaration av sin() som finns i headerfilen åstadkomma typkontroll. Eller den deklaration som finns i cups.h av en funktion med jättelång parameterlista. Nåväl, den biten är löst, men den visar på att Linux på många sätt dessvärre har bristfälligt stöd för dynamisk länkning.
SvenW
Inlägg: 1116
Blev medlem: 24 april 2007, 16:23:10
Ort: Göteborg

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av SvenW »

Så här då?
typeof (&sin) sss;
i stället för
double (*sss ) (double x);

Eller får main inte med komplett typ på det sättet?
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av mankan »

Kort svar: läs på om SO_NAME. Utvecklar senare.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av mankan »

Lite mer utläggning: SO_NAME-kommentaren handlar om hur det funkar i Linux med libfoo.so vs libfoo.so.0 och dess symlänkar.

Men ditt problem verkar egentligen inte vara dynamisk länkning utan att du själv kör dlopen med vänner för att undvika explicita beroenden till vissa libbar. Detta har väldigt lite att göra med dynamisk länkning utan är mer en pluginlösning/runtime-probning du har gjort. Japp, jag kommer ihåg att jag tipsade om dlopen osv. Hur distribueras din editor, källkod eller färdig binär? Jag kan tänka mig test-bygga/starta den i några olika miljöer, skicka pm för få emailadress.
Mr Andersson
Inlägg: 1394
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Mr Andersson »

SvenW skrev: 5 oktober 2022, 16:36:53 Så här då?
typeof (&sin) sss;
i stället för
double (*sss ) (double x);

Eller får main inte med komplett typ på det sättet?
Jo typeof fungerar, inkl. type-checking. Exempel:

Kod: Markera allt

#include <math.h>
#include <stdio.h>
#include <dlfcn.h>

int main() {
  typeof(sin) *sin_ptr;

  void* libm = dlopen("libm.so.6", RTLD_LAZY);
  sin_ptr = dlsym(libm, "sin");

  printf("%f\n", sin_ptr(M_PI / 2));
  //sin_ptr((void*)0); /* error: incompatible type for argument 1 of ‘sin_ptr’, expected ‘double’ but argument is of type ‘void *’  */
  //char* wrong_return_type = sin_ptr(0); /* error: incompatible types when initializing type ‘char *’ using type ‘double’ */
}
typeof är iofs inte standard C men ibland får man göra undantag från standarden av bekvämlighet. :)
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Hur har mitt lilla program fungerat för Er som erbjudit sig att testa? Har fått in värdefull info, men de flesta har inte sagt något alls. Även en så enkel detalj som om det alls är körbart eller inte är av värde. I fallet inte körbar även vilken Linux det testats på.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Nu är det dags!...

https://martakson.se

God Jul!
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Nu finns en ny bugfixad version på hemsidan. Även en ny funktion för att jämföra två textfiler och förbättrade inställningar för utskrift.

Har inte sett några kommentarer alls. Säg bad Ni tycker, även om Ni tycker den är det sämsta sk*t Ni någonsin har sett.
Användarvisningsbild
papabear
Inlägg: 821
Blev medlem: 14 mars 2004, 03:27:12
Ort: Eskilstuna
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av papabear »

Sparsmakad, men jag har sett sämre.
Att den är enkel gör väl inget så länge den gör vad som behövs.

Regerade dock på att den känns långsam, speciellt med tanke på hur liten den är.

(Hemsidan dvs, har inte kört editorn då jag sitter på windows)
Användarvisningsbild
AndLi
Inlägg: 17045
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av AndLi »

För mig går webbsidan så snabbt det går skulle jag säga, ingen märkbar delay någonstans.

Software sidan laddas på 220 ms, det är den som tar längst tid.
(Allt mätt med disk cache disabled)

Men om man inte laddar sidan på ett tag(minuter) så kommer software.htm ta 340 ms innan den svarar, sen kommer det igång och laddar med samma tid som innan...
(samma fenomen ser man på alla sidor, känns som något ganska snabbt går ner i "strömsparläge", men har man laddat en sida går resten fort sen)
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 6888
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: Göra en Text editor för Linux. [var: GCC och Unicode]

Inlägg av Marta »

Sidan ligger hos one.com och är handkodad html utan några stora klumpar.

Både hemsida och program skall vara enkla. Avskyr såväl megaklumpar som stökiga hemsidor där allting flimrar och flärper runt.

Skulle vilja ha någon kommentar rörande programmet. Det är annorlunda, men det skall det vara. Är föga meningsfullt att skriva en kopia av något som redan finns i femtioelva upplagor.

Är också ängelägen att få veta om det finns kompatibilitetsproblem med någon Linuxdist. Använder själv Debian med xfce.
Skriv svar