LINUX.ORG.RU

История изменений

Исправление Skullnet, (текущая версия) :

Да, какашка. Вот написал сниппет:

import java.io.*;
import java.nio.file.Files;

public class sample
{	
	public static void main(String[] args)
	{
		byte[] fileContent = new byte[16];
		try (InputStream in = new FileInputStream(new File("/proc/sys/net/ipv4/ip_local_port_range"))) {
			in.read(fileContent);
		} catch (Exception e) {
			e.printStackTrace();
		}

		String test = new String(fileContent);
		String[] parts = test.replace("\n", "").split("\t");
		System.out.println(parts[0]);
		System.out.println(parts[1]);
	}
}

Он работает, но прикол в том что:

  1. Нужно угадать буффер так как строка, а размер файла = 0 байт (через чтение всего файла читает только 1 байт), вместо того чтобы получить 4 байта (т.е сделать short[2]) через sysctl как в фри (окей, в freebsd два разных значения, но их можно прочитать как short).
  2. Нужно парсить и удалять перенос строки в конце, а потом сплит по табуляции между значениями.
  3. Потом конвертация в число.

Исправление Skullnet, :

Да, какашка. Вот написал сниппет:

import java.io.*;
import java.nio.file.Files;

public class sample
{	
	public static void main(String[] args)
	{
		byte[] fileContent = new byte[16];
		try (InputStream in = new FileInputStream(new File("/proc/sys/net/ipv4/ip_local_port_range"))) {
			in.read(fileContent);
		} catch (Exception e) {
			e.printStackTrace();
		}

		String test = new String(fileContent);
		String[] parts = test.replace("\n", "").split("\t");
		System.out.println(parts[0]);
		System.out.println(parts[1]);
	}
}

Он работает, но прикол в том что:

  1. Нужно угадать буффер так как строка, а размер файла = 0 байт (через чтение всего файла читает только 1 байт), вместо того чтобы получить 4 байта (т.е сделать short[2]) через sysctl как в фри.
  2. Нужно парсить и удалять перенос строки в конце, а потом сплит по табуляции между значениями.
  3. Потом конвертация в число.

Исходная версия Skullnet, :

Да, какашка. Вот написал сниппет:

import java.io.*;
import java.nio.file.Files;

public class sample
{	
	public static void main(String[] args)
	{
		byte[] fileContent = new byte[16];
		try (InputStream in = new FileInputStream(new File("/proc/sys/net/ipv4/ip_local_port_range"))) {
			in.read(fileContent);
		} catch (Exception e) {
			e.printStackTrace();
		}

		String test = new String(fileContent);
		String[] parts = test.replace("\n", "").split("\t");
		System.out.println(parts[0]);
		System.out.println(parts[1]);
	}
}

Он работает, но прикол в том что:

  1. Нужно угадать буффер так как строка, а размер файла = 1 байт, вместо того чтобы получить 4 байта (т.е сделать short[2]) через sysctl как в фри.
  2. Нужно парсить и удалять перенос строки в конце, а потом сплит по табуляции между значениями.
  3. Потом конвертация в число.