add path impl for linux
This commit is contained in:
		
							parent
							
								
									ab099339b2
								
							
						
					
					
						commit
						e42a53786a
					
				
							
								
								
									
										44
									
								
								fs_linux.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								fs_linux.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,44 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * fs_linux.c
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Created on: 20.10.2017
 | 
				
			||||||
 | 
					 *      Author: julian
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include "fs.h"
 | 
				
			||||||
 | 
					#include <string.h>
 | 
				
			||||||
 | 
					#include <stdlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void create_path(struct path * p, const char * fsPath) {
 | 
				
			||||||
 | 
						free_path(p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const char *start = fsPath, *current = fsPath;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (*start == '/') {
 | 
				
			||||||
 | 
							// absolute path
 | 
				
			||||||
 | 
							p->absolute = 1;
 | 
				
			||||||
 | 
							current = ++start;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (;*current != '\0'; ++current) {
 | 
				
			||||||
 | 
							if (*current == '/')  {
 | 
				
			||||||
 | 
								p->entries = realloc(p->entries, sizeof(p->entries[0]) * (p->len+1));
 | 
				
			||||||
 | 
								p->entries[p->len] = strndup(start, current-start);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// skip delimiter
 | 
				
			||||||
 | 
								start = current+1;
 | 
				
			||||||
 | 
								p->len++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (start != current) {
 | 
				
			||||||
 | 
							p->entries = realloc(p->entries, sizeof(p->entries[0]) *(p->len+1));
 | 
				
			||||||
 | 
							p->entries[p->len] = strdup(start);
 | 
				
			||||||
 | 
							p->len++;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE * path_fopen(struct path * p, const char * flags) {
 | 
				
			||||||
 | 
						// reconstruct system path
 | 
				
			||||||
 | 
						return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user