150 return (::unsetenv(name) == 0);
151 }
152
153 int os::get_last_error() {
154 return errno;
155 }
156
157 size_t os::lasterror(char *buf, size_t len) {
158 if (errno == 0) return 0;
159
160 const char *s = os::strerror(errno);
161 size_t n = ::strlen(s);
162 if (n >= len) {
163 n = len - 1;
164 }
165 ::strncpy(buf, s, n);
166 buf[n] = '\0';
167 return n;
168 }
169
170 bool os::is_debugger_attached() {
171 // not implemented
172 return false;
173 }
174
175 void os::wait_for_keypress_at_exit(void) {
176 // don't do anything on posix platforms
177 return;
178 }
179
180 int os::create_file_for_heap(const char* dir) {
181
182 const char name_template[] = "/jvmheap.XXXXXX";
183
184 size_t fullname_len = strlen(dir) + strlen(name_template);
185 char *fullname = (char*)os::malloc(fullname_len + 1, mtInternal);
186 if (fullname == NULL) {
187 vm_exit_during_initialization(err_msg("Malloc failed during creation of backing file for heap (%s)", os::strerror(errno)));
188 return -1;
189 }
190 int n = snprintf(fullname, fullname_len + 1, "%s%s", dir, name_template);
191 assert((size_t)n == fullname_len, "Unexpected number of characters in string");
192
193 os::native_path(fullname);
194
|
150 return (::unsetenv(name) == 0);
151 }
152
153 int os::get_last_error() {
154 return errno;
155 }
156
157 size_t os::lasterror(char *buf, size_t len) {
158 if (errno == 0) return 0;
159
160 const char *s = os::strerror(errno);
161 size_t n = ::strlen(s);
162 if (n >= len) {
163 n = len - 1;
164 }
165 ::strncpy(buf, s, n);
166 buf[n] = '\0';
167 return n;
168 }
169
170 void os::wait_for_keypress_at_exit(void) {
171 // don't do anything on posix platforms
172 return;
173 }
174
175 int os::create_file_for_heap(const char* dir) {
176
177 const char name_template[] = "/jvmheap.XXXXXX";
178
179 size_t fullname_len = strlen(dir) + strlen(name_template);
180 char *fullname = (char*)os::malloc(fullname_len + 1, mtInternal);
181 if (fullname == NULL) {
182 vm_exit_during_initialization(err_msg("Malloc failed during creation of backing file for heap (%s)", os::strerror(errno)));
183 return -1;
184 }
185 int n = snprintf(fullname, fullname_len + 1, "%s%s", dir, name_template);
186 assert((size_t)n == fullname_len, "Unexpected number of characters in string");
187
188 os::native_path(fullname);
189
|