本文出處: http://blog.csdn.net/leytton/article/details/52738760
java
本文目的爲Linux系統環境下:一、編寫內核模塊程序並編譯 二、加載內核模塊 三、編寫Java程序調用內核模塊編程
功能爲向內核模塊虛擬設備寫字符串,再從內核模塊虛擬設備讀出字符串長度。oop
一、編譯加載內核模塊測試
見另文《 Android內核開發 Linux C編程調用內核模塊設備驅動》http://blog.csdn.net/leytton/article/details/52738901spa
二、WordCount.java文件.net
import java.io.FileInputStream; import java.io.FileOutputStream; public class WordCount { /** * @param args */ public static void main(String[] args) { if (args.length > 0) { if (writeStringToDev(args[0])) { System.out.println("寫入成功"); } else { System.out.println("寫入失敗"); return; } int result = readWordCountFromDev(); if (result > -1) { System.out.println("字符串長度爲:" + result); } else { System.out.println("讀取失敗"); return; } } else { System.out.println("Usage .eg:java WordCount \"hello\""); } } // 向/dev/wordcount設備文件中寫入字符串 private static boolean writeStringToDev(String str) { try { // 打開/dev/word_count設備文件 FileOutputStream fos = new FileOutputStream("/dev/word_count"); // 寫入字符串 fos.write(str.getBytes("iso-8859-1")); fos.close(); } catch (Exception e) { System.out.println("Error:" + e.getMessage()); return false; } return true; } // 讀取/dev/wordcount設備文件中的字符串長度 private static int readWordCountFromDev() { int word_count = -1; byte[] buffer = new byte[4]; try { // 打開/dev/wordcount設備文件 FileInputStream fis = new FileInputStream("/dev/word_count"); word_count = fis.read(); fis.close(); } catch (Exception e) { System.out.println("Error:" + e.getMessage()); return -1; } return word_count; } }
[hadoop@localhost drivers01]$ javac -encoding gbk WordCount.java [hadoop@localhost drivers01]$ sudo java WordCount "I love you" 寫入成功 字符串長度爲:10 [hadoop@localhost drivers01]$
四、參考文章code
《使用Android NDK和Java測試Linux驅動》http://blog.csdn.net/nokiaguy/article/details/8671397
blog