Skip to content

DirectMyFile/syscall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Calls

Make System Calls in Dart. You can rewrite almost any C program now in Dart!

Currently this library supports Linux and Mac OSX. In the future, there will be partial support for Windows.

Note that the name is misleading. System Calls include both pure C functions and actual System Calls, as well as bindings to commonly-used libraries.

Bindings

  • OpenCV (WIP)
  • Readline
  • Snappy

Examples

This is just a few examples of what is possible.

fork

import "package:syscall/syscall.dart";

void main() {
  print("Prepare to be forked!");
  var pid = fork();
  
  if (pid == 0) {
    print("I am the original process.");
    wait();
  } else {
    print("I am the child process.");
  }
}

chroot

import "dart:io";

import "package:syscall/syscall.dart";

void main(List<String> args) {
  if (args.length == 0) {
    print("usage: chroot <path> [command]");
    exit(1);
  }

  chroot(args[0]);

  var cmd = args.skip(1).join(" ");

  if (cmd.isEmpty) {
    cmd = "bash";
  }

  system(cmd);
}

setuid

import "package:syscall/syscall.dart";

void main() {
  print("Attempting to Gain Superuser.");
  try {
    setUserId(0);
    print("Success.");
  } catch (e) {
    print(e);
  }
}

Releases

No releases published

Packages

No packages published

Languages