Comment appeler un code Go en C à partir de threads qui n’ont pas été créés par Go? Qu’est-ce que j’assigne à un pointeur de fonction C tel que les threads non créés par Go puissent appeler ce pointeur et entrer dans le code Go? Mise à jour0 Je ne veux pas utiliser SWIG. Les […]
J’essaye d’instancier une structure C dans mon code Go. La structure est définie comme ceci (dans une bibliothèque externe que je ne peux pas modifier): typedef struct { char field1[256]; } S1 En allant, j’ai fait ceci: func myfunc(mystr ssortingng){ // We need to convert mystr from ssortingng to char array cStr := C.CSsortingng(mystr) defer […]
J’ai des articles avec les identifiants 1, 3, 4, 5, 6, 7 . Maintenant, j’ai des données comme suit. Il y a un offerId pour chaque ligne. Array of Ids consiste en une combinaison de l’ ID dans un tableau. Discount est la valeur de cette offerId offerId : Array of Ids : Discount o1 […]
J’écris du code go qui exporte une fonction comme celle-ci: package main import “C” //export returnSsortingng func returnSsortingng() ssortingng { // gossortingng := “hello world” return gossortingng } func main() {} Je construis le fichier .so et le fichier d’en-tête en utilisant go build -buildmode = c-shared, mais lorsque j’appelle returnSsortingng () dans mon code […]
Je peux appeler une fonction Go sans parameters de C, voir ci-dessous . Cela comstack via go build et imprime Hello from Golang main function! CFunction says: Hello World from CFunction! Hello from GoFunction! main.go package main //extern int CFunction(); import “C” import “fmt” func main() { fmt.Println(“Hello from Golang main function!”) //Calling a CFunction […]
Ce: label := ssortingng([]byte{97, 98, 99, 0, 0, 0, 0}) fmt.Printf(“%s\n”, label) fait ceci ( ^@ est l’octet nul): go run test.go abc^@^@^@
Ok, alors j’ai frappé un mur de briques. Edit: utiliser bytes.IndexByte() dans ma fonction count() permet de fonctionner presque deux fois plus vite. bytes.IndexByte() est écrit en assembleur au lieu de Go. Pas encore la vitesse C, mais plus près. J’ai deux programmes, l’un en C et l’autre en Go, qui comptent tous les nouveaux […]
J’essaie de faire un serveur et un client dans Go, j’ai réussi à communiquer avec le serveur et le client. Mais le problème que j’ai, c’est que la lecture TCP dans golang est non bloquante. Ce que je voudrais savoir s’il est possible que la lecture dans golang bloque comme la lecture dans C. Merci […]
Supposons que j’ai inclus un binary dans mon programme lors de la compilation, je le garde donc dans une variable qui ressemble à var myExec =[]byte{‘s’,’o’,’m’,’e’,’ ‘,’b’,’y’,’t’,’e’,’s’} Ma question est donc de savoir s’il existe un moyen d’exécuter ce binary au sein de mon programme sans l’écrire sur le disque et sans appeler exec ou […]
En C, nous pouvons construire une version de débogage ou une version finale des fichiers binarys (les fichiers object et l’exécutable). Comment pouvons-nous faire cela dans Go?