2 code examples:

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char*argv[])
{
  FILE * fp;
  char * value = "3 # I mention 7 here";
  //char * value = "2 # This is a bogus comment";
  //char * value = "1  # enable packet forwarding for IPv6 (should be dynamic WRT firewall TBD)";
  char * path  = "/proc/sys/net/ipv6/conf/all/forwarding";
  int    n=0;

  printf("Will write the string [%s] into file [%s]\n" , value, path);
  
  if ((fp = fopen(path, "w")) == NULL) {
    perror("fopen:");
    exit(1);
  }

  n = fprintf(fp, "%s\n", value);

  printf("printf(3) returns %d\n", n);

  if (fclose(fp) != 0) {
      perror("close");
      exit(2);
  }
}
#include <fcntl.h>
#include <unistd.h>

#include <string.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char*argv[])
{
  int    fd;
  char * value = "3 # I mention 7 here";
  //char * value = "2 # This is a bogus comment";
  //char * value = "1  # enable packet forwarding for IPv6 (should be dynamic WRT firewall TBD)";
  char * path  = "/proc/sys/net/ipv6/conf/all/forwarding";
  int    n=0;

  int len;

  len=strlen(value)+1;
  
  printf("Will write the string [%s] length=%d, into file [%s]\n" , value, len, path);
  
  if ((fd = open(path, O_WRONLY)) == -1) {
    perror("open:");
    exit(1);
  }

  n = write(fd, value, len);

  printf("write(2) returns %d\n", n);

  if (close(fd) != 0) {
      perror("close");
      exit(2);
  }
}

Reply via email to