Which library contains strings.h

When trying to compile my sketch, there is an error claiming that string.h does not exist.
The Wifiu101 library contains a file wifiMDNSResponder.cpp. In that file there is a #include <strings.h> entry.

I have searched the entire hard drive on this iMac and cannot locate the strings.h file.

Is there some library that I am missing?

Arduino 1.8.9 on an iMac with Mojave

The only thing I can find is this.

What board are you trying to upload to?

It is the Arduino WiFi Rev2
I will try creating the file you pointed me to.

Just tried that and it includes other files that do not exist.
#include "_ansi.h"
#include <sys/reent.h>

Not sure what's missing.

PickyBiker:
When trying to compile my sketch, there is an error claiming that string.h does not exist.
The Wifiu101 library contains a file wifiMDNSResponder.cpp. In that file there is a #include <strings.h> entry.

The file WiFiMDNSResponder.cpp contains:

#ifndef ARDUINO_ARCH_AVR
#include <strings.h>
#endif

That means it thinks you are trying to build the library for a Non-AVR architecture. What board did you select?!?

From https://www.arduino.cc/en/Reference/WiFi101:

This library allows you to use the Arduino WiFi Shield 101 and the MKR1000 board.

Are you using an Arduino WiFi Shield 101 on your Uno WiFi Rev2?

johnwasser:
That means it thinks you are trying to build the library for a Non-AVR architecture. What board did you select?!?

The architecture of the Uno WiFi Rev2 is megaavr.

Editing WiFiMDNSResponder.cpp to change "strings.h" to "string.h" allows the example "MDNS_WiFiWebServer" to compile without error. There are a number of warnings, but no errors:

In file included from /Users/john/Documents/Arduino/libraries/WiFi101/examples/MDNS_WiFiWebServer/MDNS_WiFiWebServer.ino:31:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
 #define EXTERNAL_NUM_INTERRUPTS   NUM_TOTAL_PINS
 ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
                 from sketch/MDNS_WiFiWebServer.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
 #define EXTERNAL_NUM_INTERRUPTS     48
 ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
 #define EXTERNAL_NUM_INTERRUPTS   NUM_TOTAL_PINS
 ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:23,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
 #define EXTERNAL_NUM_INTERRUPTS     48
 ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:23:0,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:20:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp: In member function 'void SPIClass::detachMaskedInterrupts()':
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
 #define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
                                                                                                                                                   ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:134:31: note: in expansion of macro 'getPINnCTRLregister'
       uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
                               ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
 #define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
                                                                                                                                                   ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:145:31: note: in expansion of macro 'getPINnCTRLregister'
       uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
                               ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp: In member function 'void SPIClass::reattachMaskedInterrupts()':
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
 #define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
                                                                                                                                                   ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:159:31: note: in expansion of macro 'getPINnCTRLregister'
       uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
                               ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:127:147: warning: invalid conversion from 'volatile uint8_t* {aka volatile unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
 #define getPINnCTRLregister(port, bit_pos) ( ((port != NULL) && (bit_pos < NOT_A_PIN)) ? ((volatile uint8_t *)&(port->PIN0CTRL) + bit_pos) : NULL )
                                                                                                                                                   ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.cpp:169:31: note: in expansion of macro 'getPINnCTRLregister'
       uint8_t* pin_ctrl_reg = getPINnCTRLregister(portToPortStruct(shift/8), shift%8);
                               ^
In file included from /Users/john/Documents/Arduino/libraries/WiFi101/src/bus_wrapper/source/nm_bus_wrapper_samd21.cpp:46:0:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/libraries/SPI/src/SPI.h:51:0: warning: "EXTERNAL_NUM_INTERRUPTS" redefined
 #define EXTERNAL_NUM_INTERRUPTS   NUM_TOTAL_PINS
 ^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UART.h:28:0,
                 from /Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/Arduino.h:139,
                 from /Users/john/Documents/Arduino/libraries/WiFi101/src/bus_wrapper/source/nm_bus_wrapper_samd21.cpp:45:
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/variants/uno2018/pins_arduino.h:40:0: note: this is the location of the previous definition
 #define EXTERNAL_NUM_INTERRUPTS     48
 ^
/Users/john/Library/Arduino15/packages/arduino/hardware/megaavr/1.6.26/cores/arduino/UNO_compat.cpp:20:2: warning: #warning "ATMEGA328 registers emulation is enabled. You may encounter some speed issue. Please consider to disable it in the Tools menu" [-Wcpp]
 #warning "ATMEGA328 registers emulation is enabled. You may encounter some speed issue. Please consider to disable it in the Tools menu"
  ^
Sketch uses 30042 bytes (61%) of program storage space. Maximum is 49152 bytes.
Global variables use 2607 bytes (42%) of dynamic memory, leaving 3537 bytes for local variables. Maximum is 6144 bytes.

The fact remains that it's very unlikely someone would use an Arduino WiFi Shield 101 on an Uno WiFi Rev2, since the Uno WiFi Rev2 already has WiFi functionality built in.

If PickyBiker really is using an Arduino WiFi Shield 101 on their Uno WiFi Rev2, I'd be interested to to know why, just out of curiosity, and perhaps to determine whether it's worth fixing this issue in the WiFi101 library.

pert:
The fact remains that it's very unlikely someone would use an Arduino WiFi Shield 101 on an Uno WiFi Rev2, since the Uno WiFi Rev2 already has WiFi functionality built in.

I don't know why the OP was (apparently) trying to use the WiFi101 library on the Arduino UNO WiFi Rev 2 since that board uses the "WiFiNINA" (ESP32) library. Perhaps they wanted to use the MDNS example that came with the WiFi101 library. To do that I think they will have to port that example from the WiFi101 library to the WiFiNINA library.

Okay, this is resolved. When I outgrew the memory on the Arduino UNO with a WiFi Shield on it, I switched to the UNO WiFi Rev2 (without a wifi shield). The first time I tried to compile the sketch, it generated the missing strings.h error. I got hung up on tracking that down instead of switching the library from WiFi101 to WiFINina. Once I switched to the correct library and made another couple adjustments, the sketch is compiling normally.

Just a dumb mistake on my part.

Thanks to all all of you for getting me on the right track.

I'm glad to hear you are back on the right track now with the WiFiNINA library that was written for your Uno WiFi Rev2. Enjoy!
Per

Thanks Per,

As you know, the Wifi Rev2 doesn't work on my iMac running Win 10. That forces me to use Mac os and that is a real chore for me. I have been working on PC and windows since before windows was invented. I feel like a duck out of water using Mac. I am probably going to give up on this until either they make the the Rev2 work on my system or possibly find an alternative board.