2017-01-26 2 views
1

Ich habe mehrere Zeichentreiber für Linux implementiert, die mit C-Programmen über ioctl-Funktionen sprechen.ioctl mit nodejs, Zeiger?

Jetzt möchte ich das Programm mit NodeJs implementieren, aber es gibt etwas, das ich nicht verstanden habe. In der IOCTL-Funktion geben wir normalerweise einen Zeiger auf zugewiesenen Speicher und dann wird der Treiber in diesen Raum schreiben. Wie kann ich das mit Javascript machen? Ist es überhaupt möglich ? Ich habe einige Module wie open-ioctl gesehen, aber wir können nicht mehr als eine Ganzzahl bekommen ...

Ich werde 64 Bits Integer (unsigned long long) aus diesem zugewiesenen Speicher lesen müssen. Ich sah, dass es nicht möglich war, aber die Posts sind schon lange her.

Dann ist es möglich zu tun, was ich will mit bignum und open-ioctl oder etwas ähnliches?

Ich möchte nur Daten> 64Bits aus dem Linux-Treiber in meiner NodeJs-Anwendung abrufen.

Edit:

Es ist das ioctl-Paket, die ganze Zahl verwenden und Puffer, aber ich habe irgendwo gelesen, Buffer kann unsigned long long (64 Bit) nicht behandeln

Antwort

0

Es ist möglich, unter Verwendung des ref NodeJS Modul.

var ref = require('ref'); 
ArrayType = require('ref-array'); 
var StructType = require('ref-struct'); 

Das Verhalten ist genau das gleiche wie Zeiger in C. Wir zuordnen können, unter Verwendung von Strukturen etc ... aber auch Reading and writing int64_t and uint64_t values

http://tootallnate.github.io/ref/